PHP-Framework für ADR-Muster (Action Domain Responder).

Ich habe gerade das ADR -Muster (Action Domain Responder) kennengelernt , das viel effizienter zu sein scheint als MVC (Model View Controller), aber im Gegensatz zu MVC habe ich Schwierigkeiten, ein Framework für ADR zu finden. Der Grund muss sein Alter sein, es ist so jung. Aber kennt trotzdem jemand ein PHP-Framework (oder andere Sprachen), das ADR implementiert?

Antworten (1)

Symfony 2 ist nicht wirklich ein MVC-basiertes Framework. Ein Controller kann jeder aufrufbare sein; damit Sie es für ADR verwenden können.

Einige Links, die erklären, wie Controller als Aktionen verwendet werden:

Es könnte auch eine gute Idee sein, Controller zu verwenden, um Ihre Aktionen zu instanziieren und zu parametrisieren; Eine Aktion muss also nicht wissen, ob sie beispielsweise von einer HTTP-Anforderung oder einem Konsolenbefehl angefordert wurde.

Nun, ich kenne Symfony nicht, also stelle ich ein paar Fragen. 1- Was ist mit Antworten? Die Antwort wird vom Controller generiert oder in einer eigenen Klasse behandelt? 2- Ist jede Aktion auch eine völlig separate Klasse?
1. Wenn Ihr Controller eine Zeichenfolge zurückgibt, wird standardmäßig eine neue Antwort erstellt und Ihre Zeichenfolge als Textkörper verwendet. Aber ja, der Controller kann das Response-Objekt selbst instanziieren oder es beim Responder anfordern. 2. In Symfony ist es üblich, Aktionen in einem Controller zu gruppieren, aber wie gesagt, ein Controller kann beliebig aufrufbar sein, sodass er nur eine Methode haben kann, und diese Methode kann „__invoke“ sein, damit der Controller aufrufbar ist selbst und als Aktion verwendbar.
Also, wenn ich richtig liege, können wir hier auch Laravel erwähnen
Ja wir können. Aber meiner Meinung nach ist Laravels Ziel kleine bis mittlere Anwendungen und es ist sehr "CRUD-orientiert". Mit Laravel können Sie schnell kleine CRUD-APIs erstellen, aber es fehlt ihr ernsthaft an Robustheit für größere Anwendungen (ich erlebe das gerade), insbesondere mit Eloquent (Laravels ORM). Da Sie sich für das ADR-Muster interessieren, ziehen Sie vermutlich eine große Anwendung in Betracht, da das ADR-Muster für kleinste Anwendungen fast nutzlos ist.
Zusammenfassend lässt sich sagen, dass Symfony einige gängige Vorgehensweisen und Standardoptionen hat, aber es wird Sie niemals daran hindern, Ihre eigenen Wege zu gehen. Im Gegensatz dazu ist Laravel sehr „eigennützig“; Es ermöglicht Ihnen, sich schnell zu entwickeln, wenn Sie bereits entworfenen Wegen folgen, aber es wird sehr schwierig sein, aus dem Weg zu gehen. Und ADR ist eindeutig kein üblicher Weg.