Ringrazio per gli apprezzamenti che ho ricevuto!
Diciamo che non è sbagliato, ma non sarebbe neanche giusto.. bisognerebbe definire cosa si intende per "model" in questo contesto. Ad occhio il Model gestisce l'intera parte "M Model" del sistema senza sezionarne le competenze quindi può essere corretto come approccio.
Un modulo può aver bisogno di altri moduli per operare. Se pensi anche solamente ad un "nodo" (contenuto)
il modulo "Node" potrebbe usare il modulo "Tag" per la selezione dei tags da associare al nodo, oppure il modulo "User" per sapere a che utente appartiene.. ect ect..
Anche se c'è da dire che spezzando il Model in sub-pack avresti una gestione migliore del sistema (SRP)
La view globale è "iniettata" per aggregazione al controllore che in questo modo la può modificare a piacimentoPoi la seconda cosa che non ho capito ma che ho intuito vedendo come altri metodi passano le variabili alla view è il seguente :
$this->view->Shops = $shop_model->getShops();
Qui in particolare non riesco a capire perchè utilizza $this-> per richiamare la view
La logica spiccia è:
Codice PHP:
// layer 0 - index.php
$layout = new view();
$fc = new FrontController()
$fc->run( $layout, ... );
// layer n - modules\userController.php
// in questo modo il controller può modificare la view globale
$c = new userController( $layout );
è una funzione normale della view, si fa tramite i magic methods __get e __sete poi come cavolo fa con questo $this->view->Shops a passare la variabile, è come se creasse nella classe view una propietà al volo.
daje e studia!!!