Marco PHP para patrón ADR (Action Domain Responder)

Acabo de conocer el patrón ADR (Action Domain Responder) que parece ser mucho más eficiente que MVC (Model View Controller), pero a diferencia de MVC, tengo dificultades para encontrar un marco para ADR. La razón debe ser su edad, es tan joven. Pero, ¿alguien conoce un marco PHP (o cualquier otro idioma) que implemente ADR?

Respuestas (1)

Symfony 2 no es realmente un marco basado en MVC. Un controlador puede ser cualquiera invocable; para que puedas usarlo para ADR.

Algunos enlaces que explican cómo usar los controladores como acciones:

También podría ser una buena idea usar controladores para instanciar y parametrizar sus acciones; por lo tanto, una acción no tiene que saber si se solicitó desde una solicitud HTTP o un comando de consola, por ejemplo.

Bueno, no conozco Symfony, así que hago algunas preguntas. 1- ¿Qué pasa con las respuestas? ¿El controlador genera la respuesta, o se trata en una clase separada? 2- ¿También cada acción es una clase totalmente separada?
1. De forma predeterminada, si su controlador devuelve una cadena, se creará una nueva respuesta y su cadena se utilizará como cuerpo. Pero, sí, el controlador puede crear una instancia del objeto de respuesta o solicitarlo al respondedor. 2. Es una práctica común, en Symfony, agrupar acciones en un controlador, pero, como dije, un controlador puede ser invocable, por lo que solo puede tener un método, y este método puede ser "__invocar", por lo que el controlador es invocable. en sí mismo, y utilizable como una acción.
Bueno, si no me equivoco, también podemos mencionar a laravel aquí.
Si podemos. Pero, en mi humilde opinión, el objetivo de Laravel son las aplicaciones pequeñas y medianas y está muy "orientado a CRUD". Con Laravel, puede crear rápidamente una pequeña API CRUD, pero carece seriamente de robustez para aplicaciones más grandes (estoy experimentando esto ahora), especialmente con Eloquent (ORM de Laravel). Dado que está interesado en el patrón ADR, supongo que considera una aplicación grande, ya que el patrón ADR es casi inútil para las aplicaciones más pequeñas.
En resumen, Symfony tiene algunas prácticas comunes y opciones predeterminadas, pero nunca te bloqueará para crear tus propias formas. Por el contrario, Laravel es muy "obstinado"; te permite desarrollarte rápidamente cuando sigues caminos ya diseñados, pero será muy difícil salirse del camino. Y ADR claramente no es una forma común.