Witam,
No właśnie. W jaki sposób to wszystko połączyć tak, aby podczas przyszłej rozbudowy nie bluzgać na samego siebie?
Założenie jest takie, że korzystamy z jednego głównego pliku index.php, na którego kierujemy wszystkie requesty. On definiuje najpotrzebniejsze stałe (Ścieżka do aplikacji, środowisko itp.) a później pobiera główny plik z klasą (np bootstrap czy Kernel) i wywołuje w niej metodę Kernel::init()... i co teraz? Co mamy ładować pierwsze? Najpierw routing, sprawdzamy jaki kontroler mamy uruchomić. No dobrze, znaleźliśmy definicje kontrolera w konfiguracji i co teraz? Gdzie ją mamy wysłać? Do innej klasy, która teraz zajmie się uruchomieniem kontrolera użytkownika?
Zastanawiałem się nad podejściami dwoma:
1. Łańcuchowe. tzn.: Routing ma coś za zadanie, jeśli to zrobi to wywołuje coś, jeśli to coś co równiez ma swoje zadanie, jeśli zrobi to znowu wywołuje coś innego i tak dopóki nie dojdziemy do klasy zajmującej się wyrenderowaniem widoku.
2. Schodkowe, ale odpowiada za to jedna klasa. Np ta, która wywołamy na samym początku z pliku index.php. I ona pokolei pyta wszystkie klasy o coś, one jej zwracają a ona pyta dalej. Nie chodzi tu o pętlę ani nic w tym stylu. Wszystko napisane własnoręcznie więc podczas dodawania nowych fuknkcji wiadomo gdzie szukać.
Problem pierwszego rozwiązania jest taki, że podczas edycji czegoś, w określonych warunkach trzeba będzie zmieniać więle części aplikacji ponieważ jedna część wychodzi z wyniku poprzedniej.
Problem drugiego rozwiązania jest taki, że podczas rozrastania się aplikacji, metoda któa zajmuje się uruchamianiej każdej części aplikacji pobieraniem i zwracaniem danych bardzo się rozrośnie i może w niej pojawiać się mnóstwo błędów z tego względu.
Proszę o jakies propozycje lub uwagi do tego co napisałem. Wszystko mile widziane.