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.
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.
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 |