Ringrazio per gli apprezzamenti che ho ricevuto!

Quote Originariamente inviata da Fractals87 Visualizza il messaggio
Prima domanda.
E' corretto che il metodo register LoginModel istanzi un altro Model per accedere ai suoi metodi
(Vedi caso : $shop_model = $this->loadModel('shop'); $this->view->Shops = $shop_model->getShops()?
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)

Poi 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 view globale è "iniettata" per aggregazione al controllore che in questo modo la può modificare a piacimento

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 ); 
e poi come cavolo fa con questo $this->view->Shops a passare la variabile, è come se creasse nella classe view una propietà al volo.
è una funzione normale della view, si fa tramite i magic methods __get e __set

daje e studia!!!