PHP  »  Articoli  »  Taste Framework 

Il Framework MVC Taste: server e applicazioni

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

Nell'articolo precedente abbiamo discusso l'implementazione del registro globale e delle classi che si occupano di astrarre una richiesta inviata dal Web server ed una risposta generata dal sistema. Una volta che queste informazioni sono ricevute dal nostro script di bootstrap è necessario comunque che vi sia del codice che si occupa di associare un comportamento alle richieste in arrivo in modo da generare risposte corrette. In Taste il comportamento viene dato attraverso l'implementazione di un'applicazione che viene invocata da uno script centrale in modo che gestisca correttamente le chiamate. Lo script centrale è implementato nella classe Server, mentre le applicazioni sono delle sottoclassi della classe astratta Application.

Entrambe queste classi verranno descritte nel seguente articolo, e si fornirà una prima implementazione di testing del file di bootstrap in modo che sia possibile iniziare a testare il corretto funzionamento del framework.

Potete scaricare l'ultima versione del framework dal link donwload all'inizio dell'articolo.

Scheletro di un'applicazione

Iniziamo col discutere la classe Application (che potete trovare nel file taste/Application.php); l'implementazione viene fornita come classe astratta che andrà estesa quando si vorrà implementare un'applicazione che gestisca manualmente le richieste e le risposte.

<?php

require_once 'taste/Request.php';
require_once 'taste/config/Configurable.php';

abstract class Application extends Configurable
{
    private $base_app;
    
    public function __construct($base_app=null)
    {
        parent::__construct();
        
        $this->base_app = $base_app;
    }
    
    protected function runParent(Request $request)
    {
        if(!is_null($this->base_app))
            return $this->base_app->run($request);
    }
    
    abstract public function run(Request $request);
}

?>

Il costruttore delle classe accetta come parametro opzionale l'istanza di un'altra applicazione: questa possibilità è stata data in modo che sia possibile sviluppare applicazioni indipendenti che si occupino di gestire in modo trasparente richiesta e risposta senza sapere se la prima proviene direttamente dal server o da un'altra applicazione e se la seconda verrà stampata in output o gestita diversamente. In questo modo possiamo implementare applicazioni che fungano da middleware e che gestiscano comportamenti opzionali aggiuntivi indipendenti dall'effettiva gestione finale delle richieste (come ad esempio i caching).

Per rendere completo il comportamento viene fornita l'implementazione del metodo runParent che semplicemente esegue l'eventuale classe specificata come parent restituendone la risposta generata. Il metodo run viene lasciato come astratto e dovrà essere implementato dalle sottoclassi al fine di fornire un comportamento specifico.

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