Witajcie,
mam od kilku lat dwie książki na temat wzorców projektowych: "PHP Obiekty, wzorce, narzędzia" i "PHP Wzorce obiektowe". Od czasu zainteresowania się tematem napisałem dużo kodu proceduralnego w Kohana, w Yii i w Symfony2/3 korzystając z zastanych mechanizmach obiektowych. Niestety - nie udało mi się przez ten czas zaimplementować "od zera" projektowego wzorca obiektowego w praktycznym (biznesowym) zastosowaniu.
Starałem się czytać te książki z kartki do kartki - zbyt wysoka abstrakcja dla mnie. Raz na jakiś czas je przeglądam - wciąż za dużo niewiadomych. Natomiast przepisywanie przykładów miałoby według mnie większy sens, gdybym wyobraził sobie praktyczne zastosowania w większej aplikacji (taka nauka od ogółu do szczegółu), co dodatkowo dałoby mi zrozumienie jak projektować spójną architekturę aplikacji zorientowanej objektowo (a nie rozbudowywanie aplikacji od funkcjonalności do funkcjonalności).
Zależy mi na zrozumieniu tego zagadnienia, dlatego zwracam się do Was z prośbą o odpowiedzi na dwie kwestie:
-
(trochę poboczne zagadnienie) Symfony jest (jak wiadomo) obiektowym frameworkiem MVC. Skoro ma wbudowane takie wzorce jak EventListener (Obserwator), czy Dependency Injection (inaczej Inversion of Control), Subscriber, Listener, to czy:
1.a. są wzorce które nie da się zastąpić mechanizmami Symfony (jakie)?
1.b. gdzie umieszczać dodatkowe klasy tych wzorców w strukturze katalogów/plików
- najbliżej kontrolerów, czy też w katalogu z logiką, czyli tam gdzie jest implementowany DJ, czy też jeszcze gdzie indziej? A może jako bundle? -
Czy moglibyście podać jak najwięcej opisów przykładowych (ale praktycznych) aplikacji webowych (takie jakby "zadania domowe") które wymagałyby jak największą ilość wzorców projektowych jednocześnie (wraz z wymienieniem zalecanych wzorców)?
Byłbym niezwykle wdzięczny za wszelkie rady, wskazówki i odpowiedzi,
pozdrawiam.