Il file di bootstrap è responsabile di istanziare e configurare la web application. ZF come abbiamo visto implementa il pattern Front Controller: per questo motivo il file di bootstrap è normalmente l'unico file PHP a dover essere accessibile all'esterno, risiedendo nella directory public. Questo file è sostanzialmente quello da cui passando tutte le richieste, e solitamente è chiamato index.php: vediamo in dettaglio il file di bootstrap del nostro esempio.
<?php
// Definiamo il path della directory "application"
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
// Definiamo l'ambiente in cui stiamo lavorando
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
// Assicuriamoci che la directory "library" sia compresa nell' "include_path"
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
realpath(APPLICATION_PATH . '/../../Library'),
get_include_path(),
)));
/** includiamo Zend_Application */
require_once 'Zend/Application.php';
// Creiamo un'istanza di Zend_Application...
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
//...e la lanciamo
$application->bootstrap()->run();
?>
I commenti nel codice dovrebbero chiarire i punti principali del file index.php. La variabile d'ambiente APPLICATION_ENV
è proprio quella che abbiamo introdotto nella lezione precedente: questa è responsabile di impostare il tipo di ambiente nel quale "gira" la nostra web application. Questa meccanismo è molto comodo perché ci permette di passare ad esempio dall'ambiente di sviluppo, di testing o di produzione impostando quest'unico valore.