Action-Domain-Responder cu Slim - Slim Framework
În această postare, voi arăta cum să refactorizați aplicația tutorial Slim pentru a urma mai atent modelul Action-Domain-Responder.

Un lucru frumos despre Slim (și majoritatea celorlalte cadre de interfață utilizator HTTP) este că acestea sunt deja orientate spre „acțiune”. Adică, routerele lor nu presupun o clasă de controler cu multe metode de acțiune. În schimb, ei presupun o închidere a acțiunii sau o clasă invocabilă cu o singură acțiune.
Deci, partea Action din Action-Domain-Responder există deja pentru Slim. Tot ce era necesar este să scoți biți străini din acțiuni, pentru a separa mai clar comportamentele de acțiune de comportamentele de domeniu și de răspuns.
Extrageți domeniul
Să începem prin extragerea logicii domeniului. În tutorialul original, Acțiunile utilizează direct două mapere sursă de date și încorporează și o logică de afaceri. Putem crea o clasă Service Layer numită TicketService și putem muta acele operațiuni din Acțiuni în Domeniu. Făcând acest lucru ne oferă această clasă:
Creăm un obiect container în index.php astfel:
Și acum Acțiunile pot utiliza TicketService în loc să efectueze direct logica domeniului:
Un avantaj aici este că acum putem testa activitățile domeniului separat de acțiuni. Putem începe să facem ceva mai mult ca testarea integrării, chiar și testarea unitară, în loc de testarea sistemului end-to-end.
Extract Responder
În cazul aplicației tutoriale, lucrarea de prezentare este atât de simplă încât nu necesită un răspuns separat pentru fiecare acțiune. O variație relaxată a unui strat de răspuns este perfect potrivită în acest caz simplu, în care fiecare acțiune utilizează o metodă diferită pe un răspuns comun.