PHP  »  Articoli  »  Taste Framework 

Il Framework MVC Taste: gestione delle richieste HTTP

di: Gabriele Farina     22 Febbraio 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.

Nell'articolo precedente abbiamo iniziato a discutere dell'implementazione del sistema di configurazione del framework Taste; abbiamo anche introdotto la struttura base di funzionamento accennando ai componenti che interagiscono nella gestione di una richiesta HTTP proveniente dal webserver ed instradata al file di bootstrap. In questo articolo continueremo da dove ci eravamo fermati precedentemente, discutendo prima l'implementazione di un registro statico globale in cui registrare delle informazioni che dovranno essere accessibili da qualunque punto del nostro codice e successivamente fornendo l'implementazione delle classi per la gestione delle richieste e delle risposte HTTP che passano per il file di bootstrap.

Il framework aggiornato con le ultime modifiche è possibile scaricarlo dal link download che trovate all'inizio dell'articolo.

Il registro globale

La classe Registry è la prima classe di supporto che andiamo ad implementare, che servirà per poterci permettere di condividere delle informazioni tra i vari oggetti senza la necessità di dover utilizzare variabili globali. La classe Registry è implementata utilizzando il pattern Singleton (che abbiamo discusso in un articolo precedente sui design patterns) ed una serie di metodi static pubblici che permettono di salvare, recuperare ed eliminare delle coppie chiave-valore. Il vantaggio dell'utilizzo di un registro globale implementate come un Singleton è dato dal fatto che si mantiene un'interfaccia ad oggetti senza dover necessariamente sacrificare la semplicità di utilizzo di un array globale e senza rischiare di intaccare altre porzioni di codice non strettamente legate al framework che potrebbero fare uso di array omonimi.

Il file sorgente (che potete trovare in taste/utils/Registry.php) fornisce un'implementazione molto semplice di registro:

  • Il metodo getInstance tipico del Singleton, che solamente viene reso pubblico, è invece privato in modo da forzare l'utilizzo degli altri metodi statici per lavorare sul registro;
  • Internamente i dati sono salvati all'interno dell'array $cache e quindi nel caso in cui venga assegnato un valore ad una chiave già presente nel registro, questo sovrascrive quello precedente;
  • i metodi has e set lavorano sulla cache interna come farebbero rispettivamente il metodo isset e l'operatore di assegnamento;
  • il metodo get ed il metodo del restituiscono entrambi un'eccezione RegistryException nel caso in cui la chiave specificata come primo parametro non esista all'interno del registro. È possibile comunque specificare come secondo parametro opzionale un valore di default per il metodo get in modo che l'eccezione non venga generata.

Con questa implementazione quindi sarà possibile interrogare il registro globalmente senza la necessità di ottenere delle istanze o fare riferimento a variabili globali:

<?php

require_once 'taste/utils/registry.php';

function test_set()
{
    Registry::set('chiave', 'valore');
}

function test_get()
{
    // Stampa: valore
   
echo Registry::get('chiave');
}

test_set();
test_get();

?>

Guide PHP

Guida Yii Framework

Come creare applicazioni Web in modo semplice e veloce con il...

Guida Zend Framework

Diventate professionisti dello sviluppo Web. Zend Framework è lo...

Guida Applicazioni Facebook con PHP

Come realizzare un'applicazione per Facebook. Dalle basi della...

Altre guide

Newsletter @PHP

Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso PHP per Webmaster

11 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti