Cytat
"class Controller extends Services"
Myślałem że w ten sposób rozszerzam klasę Controller, a nie Services

, Ale trudno..
W każdej innej klasie, nawet sub aplikacji korzystam z extends Services, i dostaję wtedy dostęp do wszystkich zasobów i modułów.
W tedy w każdym miejscu mogę użyć $this->Database()->select( /* args */);
Klasa nie może być statyczna, lecz tylko zmienna w której przechowuję dane o modułach czyli zmienna Services::$_modules.
W ten sposób zapobiegłem duplikowaniu modułów przy każdym dziedziczeniu w klasach.
"Nie zauważyłem byś gdziekolwiek przekazywał jakąkolwiek konfigurację, a to poniekąd zły znak. "
Cytat
$this->Data()->getVars();
Tutaj zbieram dane od clienta i jego przeglądarki.
A w module Config() trzymam całą konfiguracje, stałą i zmienną, która jest dopasowywana do każdej sesji. Nie wiem czy to dobrze, ale liczę na ostrą krytykę

Cytat
Dane imho nt. modułu itp powinny zostać wcześniej sprawdzone (długość, czy to string itp) i dopiero później powinny być przekazane do Applications w celach sprawdzenia istnienia i utworzenia obiektu.
Dane są sprawdzane, te od clienta, ale nie pod kątem aplikacji i typów bo to tak jak by zbieranie i filtrowanie wszystkich dostępnych zmiennych globalnych i sprowadzenie ich do zmiennej w klasie Data. Ale pomyślę nad tym

Co to dodać linijkę czy dwie na sprawdzenie czy w urlu app, module, section są stringami, mają odpowiednią długość itp .
Cytat
Skoro korzystasz z jakiejś ścieżki kilkukrotnie to zapisz ją gdzieś do zmiennej i używaj w ten sposób. Poza tym lepiej byś tę ścieżkę przekazał jako argument / klucz konfiguracji, zamiast ustawiać na sztywno w klasie.
Wiem, wiem, ale to było dla testu i zapomniałem

Zrobi się, dzięki za uwagę.
DependencyInjection
Już to przerabiałem w starej aplikacji.. ale nie wiedziałem że tak to się nazywa. Ale nie wiem czy mi to da taką elastyczność jak tymczasowe rozwiązanie. Muszę pomyśleć.