Jestem programistą Java, który próbuje zbadać CakePHP - aktualnie mam problem ze strukturą aplikacji/projektem. Nie mogłem zrozumieć, gdzie umieścić główną logikę aplikacji.CakePHP - gdzie umieścić logikę usługi
Kiedy Zajmuję się JavaEE, wspólne podejście wygląda jak następuje:
klas modelu są proste fasola reprezentujące podmioty danych (produkty, ludzie itp) - jak w większości struktur danych z pobierające/ustawiające;
Klasy sterowników są dość prostymi klasami, które sumują niezbędne dane i wprowadzają je do dedykowanego szablonu widoku, który następnie jest wysyłany do użytkownika;
Klasa DAO (DataAccessObject) lub Repository to te, które mogą ładować i przechowywać jednostki w bazie danych;
Klasy usług są zwykle pojedynczymi, które zawierają pewne metody logiki biznesowej - są one wywoływane przez kontrolery, inne usługi lub zaplanowane akcje, z drugiej strony same wywołują metody DAO/Repozytorium w celu pobrania lub modyfikacji danych.
Na przykład jeśli mam podmioty Person
, Product
i Order
, gdy użytkownik wybierze jakiś produkt i kliknięcia „włóż ją do mego Koszyk/kosz” new Order
tego Person
powinny być tworzone i to Product
należy dodać do tego Order
(możemy sprawdzić, czy Person
nie jest złym dłużnikiem i że Product
jest obecny w sklepie itp.) - wszystkie te prace są wykonywane w metodach OrderService
, wywołanych przez jakiegoś kontrolera.
Zazwyczaj jakaś MKOl (Inversion of Control) jest używany tak, że wszystkie usługi i sterowniki linki do niezbędnych usług itp
Teraz jestem nieco zdezorientowany o tym, jak to wszystko odbywa się w CakePHP. Gdzie powinienem umieścić tę logikę biznesową itp.?
Dzięki za wyjaśnienie. Wzmianka o wzorze ActiveRecord czyni mnie bardziej zrozumiałym. Jeśli chodzi o twoją osobistą opinię - które frameworki PHP są bardziej zgodne z ideą MVC i dobrymi praktykami? –
@RodionGorkovenko, obecnie najlepszy, pod względem kodowania, uważany jest za Symfony2. Ale to jak bycie najmądrzejszym rodzajem w klasie zaradczej. A Sf2 to [nie jest to framework MVC] (http://fabien.potencier.org/article/49/what-is-symfony2). Ale powinieneś być w stanie użyć wzoru projektu MVC. Większość frameworków PHP, które podają się za "frameworki MVC", jest zgodna z interpretacją MVC RubyOnRails (widok to szablon i model to ORM), z uwzględnieniem wszystkich minusów. –
Uwielbiam swoją odpowiedź @ tereško. Proszę, nie przestawaj! –