Webdesign MVC: andando nella giusta direzione?

0

Sto cercando di imparare il webdesign usando il modello di progettazione MVC. In questo momento, sono bloccato in un punto in cui il mio codice diventa più complesso e non sono sicuro della struttura e di dove mettere le parti del codice.

Ho iniziato con un file index.php come controller, che in questo momento non richiede molto più del caricamento del framework Slim per il rendering delle diverse viste

$app->get('/', function() use ($app){  
$app->render('header.php');  
$app->render('content.php');   
$app->render('footer.php');  
});  
$app->run();

Poi ho costruito un content.php complesso dove faccio un sacco di logica dei dati di forma, leggendo da una directory del server e facendo eco ai risultati combinati con tag html. Questo sicuramente viola il pattern MVC, giusto?

Qual è l'approccio generale a questo? Dovrei mettere tutta la logica all'interno di index.php, archiviare i risultati in un array e passarlo alla funzione di rendering del framework, in questo modo:

$app->get('/', function() use ($app){ 

//Do something and store results in an Array

$app->render('header.php', anArray());  
$app->render('content.php', anArray());   
$app->render('footer.php', anArray());  
});  
$app->run();

Come posso evitare che index.php diventi troppo complesso quando lo fai? C'è un approccio diverso da prendere?

    
posta John Doe 18.11.2015 - 13:35
fonte

1 risposta

1

Il trucco è che devi passare le tue variabili nel tuo oggetto in questo modo: $app->vars = $yourVars

Quindi se includi i file nella tua funzione di rendering i file funzionano come parte del tuo oggetto e puoi accedere ai tuoi vars in questo modo: $this->vars

Oppure puoi anche passare i vars come pensavi $app->render('file.php', $yourVars)

Questo è l'intero punto di MVC. Passi solo variabili specifiche agli oggetti in modo che non possano accedervi tutti.

    
risposta data 18.11.2015 - 13:44
fonte

Leggi altre domande sui tag