В последнее время я пытался улучшить/отойти от стандартной установки MVC для веб-разработки, и я подумал, что пришло время бросить мои идеи в StackOverflow.Отказ от MVC
Общий поток тот же, что и загрузочный загрузчик создает исходные объекты. Разница в том, что они сохраняются в ServiceManager.
Затем вместо диспетчеризации контроллер загружает представление.
Затем отображает команды и запросы. Команды представляют функциональность, которая обычно связана с формами (обычно обновляет строки базы данных), а запросы - это то, что обычно было бы ModelPeers. Когда они создаются (через ServiceManager), они передают ServiceManager, что избавляет от необходимости много потенциально сложной инъекции зависимостей.
Модели сами будут просто создавать/обновлять/удалять по одной строке.
Так вид будет выглядеть так:
ListUsers.php
<?php $users = $this->ServiceManager->get('Query\User')->getNewestUsers(10); ?>
<?php foreach($users as $user): ?>
....
<?php endforeach; ?>
UpdateUser.php
<?php $this->ServiceManager->get('Command\User')->update(); ?>
<form>...</form>
Я знаю, что есть некоторые нарушения уровня, но это кажется намного чище, чем имея кучу контроллеров, которые больше похожи на ViewVariableSetters, чем что-либо.
Он также делает все гораздо более проверяемым, поскольку все функции инкапсулированы в команды и запросы и от больших контроллеров. Технически я мог бы иметь контроллер или ViewVariableSetter, но похоже, что он добавит намного больше кода с очень небольшим преимуществом.
Любая обратная связь будет оценена, и, пожалуйста, дайте мне знать, если я смогу прояснить что-либо.
Я выйду на несколько часов, но как только вернусь, я получу новые ответы. – whichdan