di: Gabriele Farina 08 Marzo 2007
Questo articolo fa parte di una serie dedicata alla programmazione di un framework MVC personalizzato in PHP. L'autore ha chiamato questo framework "Taste". Gli altri articoli della serie sono disponibili nella categoria Taste framework di php.html.it.
Dopo aver introdotto e descritto la parte del framework che sarà essenziale per implementare un sistema di bootstrap che si occupi di instradare correttamente le richieste HTTP ad i nostri controller scritti in PHP, iniziamo ad addentrarci in modo pratico e teorico ai concetti base di un framework MVC.
In questo articolo ci occuperemo della fase di routing di una richiesta, che in pratica è il processo che permette di associare ad un determinato URL un controller PHP che verrà recuperato ed eseguito da un'applicazione eseguita dal server.
Potete scaricare l'ultima versione del framework dal link donwload all'inizio dell'articolo.
Il processo di routing delle richieste è composto da una serie di operazioni che permettono al framework MVC di interpretare una richiesta HTTP in modo da associarvi l'esecuzione di un controller. Come ben sappiamo, quando viene richiesto un URL specifico dal browser viene composta una richiesta HTTP che viene inviata al server; nel nostro caso questa richiesta è intercettata dallo script di bootstrap che la impacchetta all'interno di un oggetto Request che viene instradato dal Server verso una o più implementazioni di Application. È a questo punto che interviene il processo di routing: l'applicazione recupera l'URL richiesto, lo analizza e recupera il controller corrispondente alla richiesta. Dopo averlo recuperato lo esegue, genera un'istanza di Response e la restituisce al flusso del Server.
Al fine di mantenere separato e modulare il framework ho implementato due entità separate per il router e per l'applicazione che lo utilizza; in questo modo è possibile cambiare implementazioni del router in modo trasparente al funzionamento del core MVC.
I sistemi di routing variano moltissimo in base alle esigenze della piattaforma MVC che si utilizza e, perché no, dell'applicazione che vi viene sviluppata sopra. Tra le varie opzioni possibili possiamo identificare comunque due gruppi principali:
Nelle implementazioni del primo tipo di router vengono solamente utilizzate delle espressioni regolari che, applicate all'URL, permettono di identificare il controller da eseguire. Queste espressioni regolari contengono spesso dei raggruppamenti, che permettono di definire delle parti variabili di URL che andranno a fungere da parametri per le azioni dei controller richiamati.
Come esempio forniremo l'implementazione della prima versione, che a mio parere è sicuramente la più configurabile e riadattabile alla maggior parte delle esigenze.
Guida Yii FrameworkCome creare applicazioni Web in modo semplice e veloce con il... |
Guida Zend FrameworkDiventate professionisti dello sviluppo Web. Zend Framework è lo... |
Guida Applicazioni Facebook con PHPCome realizzare un'applicazione per Facebook. Dalle basi della... |
Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.
Iscriviti alla newsletter
|
|
Corso PHP per Webmaster11 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |