Создание фабрики моделей с помощью PHP MVC - PullRequest
1 голос
/ 12 мая 2011

Я написал достойный MVC-фреймворк, основанный на некоторых основательных уроках и заимствованный из Cake. Это соответствует нашим потребностям, потому что у нас уже есть существующее приложение, на котором мы строим.

Моя ситуация такова: у меня есть модель, которая описывает, скажем, команду. У этой команды есть свойства, методы, бла-бла-бла. В моем контроллере я могу легко создать одну команду:

$team = new Team('Hornets')

Отлично работает. Однако, скажем, я хочу иметь метод, который возвращает все команды для данной страны? Перед использованием MVC я просто сделал бы фабричный класс и сделал бы:

$teams = Array();
$teams = TeamFactory::getTeams('Canada')

Это вернет массив команд. Я думаю, что я все еще могу это сделать, но мой основной вопрос: где я буду хранить эти фабричные классы в структуре папок?

У меня есть папка с именем "lib" в корне, где я храню различные классы, которые я использую на регулярной основе. Меня беспокоит только то, что эта папка превратится в большой беспорядок "Team.Factory.php", "Player.Factory.php", смешанный со всеми остальными вещами. Мой собственный инстинкт состоит в том, чтобы, возможно, создать подпапку внутри «lib» под названием «factory» и затем идти дальше.

Это "не-MVC"? Amidoingthisrite

1 Ответ

2 голосов
/ 12 мая 2011

MVC не против структуры каталогов.Я бы оставил класс TeamFactory в том же каталоге, что и класс Team, или, возможно, создал бы в нем подкаталог и разместил его там.Вот что я имею в виду:

model/Team.php
model/TeamFactory.php

или

model/Team.php
model/factories/TeamFactory.php
...