PHP-фреймворк для шаблона ADR (Action Domain Responder)

Я только что узнал о шаблоне ADR (Action Domain Responder), который кажется намного более эффективным, чем MVC (Model View Controller), но, в отличие от MVC, мне трудно найти структуру для ADR. Причина, должно быть, в его возрасте, он так молод. Но все же кто-нибудь знает структуру PHP (или любого другого языка), которая реализует ADR?

Ответы (1)

Symfony 2 на самом деле не является фреймворком, основанным на MVC. Контроллер может быть любым вызываемым; так что вы можете использовать его для ADR.

Некоторые ссылки, объясняющие, как использовать контроллеры в качестве действий:

Также может быть хорошей идеей использовать контроллеры для создания экземпляров и параметризации ваших действий; поэтому действие не должно знать, было ли оно запрошено, например, из HTTP-запроса или консольной команды.

Ну я не знаю symfony, поэтому задаю несколько вопросов. 1- А как насчет ответов? Контроллер генерирует ответ, или он обрабатывается в отдельном классе? 2- Также является ли каждое действие совершенно отдельным классом?
1. По умолчанию, если ваш контроллер возвращает строку, будет создан новый ответ, и ваша строка будет использоваться в качестве тела. Но да, контроллер может создать экземпляр объекта ответа или запросить его у ответчика. 2. В Symfony принято группировать действия в контроллере, но, как я уже сказал, контроллер может быть любым вызываемым, поэтому у него может быть только один метод, и этот метод может быть «__invoke», поэтому контроллер может быть вызываемым. само по себе и может использоваться как действие.
Итак, если я прав, мы можем упомянуть здесь и laravel.
Да мы можем. Но, ИМХО, целью Laravel являются малые и средние приложения, и они очень «ориентированы на CRUD». С Laravel вы можете быстро создать небольшой CRUD API, но ему серьезно не хватает надежности для больших приложений (я испытываю это прямо сейчас), особенно с Eloquent (Laravel ORM). Поскольку вас интересует шаблон ADR, я полагаю, вы рассматриваете большое приложение, поскольку шаблон ADR почти бесполезен для самых маленьких приложений.
Подводя итог, можно сказать, что у Symfony есть некоторые распространенные практики и варианты по умолчанию, но он никогда не будет мешать вам создавать свои собственные пути. Напротив, Laravel очень «самоуверен»; он позволяет быстро развиваться, когда вы идете по уже намеченным путям, но уйти с пути будет очень сложно. И ADR явно не распространенный способ.