![]() |
|
Getting Started with symfonyGli ambienti |
|
You are currently reading "Getting Started with symfony" which is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.

|
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License. |
Guardando nella directory web/, ci saranno due file PHP:
index.php e frontend_dev.php. Questi file sono chiamati front controller
e vengono utilizzati per gestire tutte le richieste fatte all'applicazione.
Ma perché avere due front controller per ogni applicazione?
Entrambi i file puntano alla stessa applicazione, ma per ambienti differenti. Quando viene sviluppata un'applicazione, ad eccezione di quelle sviluppate direttamente sul server di produzione, diversi ambienti sono necessari:
Cosa rende ogni ambiente differente? Ad esempio nell'ambiente di sviluppo, l'applicazione deve registrare tutti dettagli delle richieste per rendere più facile il debug del codice, contemporaneamente deve avere la cache disabilitata per permettere di vedere subito i risultati del proprio lavoro. In sostanza l'ambiente di sviluppo deve essere ottimizzato per gli sviluppatori. Il miglior esempio che si può dare è quello delle eccezioni del framework. Per aiutare lo sviluppatore a controllare il proprio codice velocemente, symfony mostra l'eccezione per la richiesta fatta, con tutte le informazioni ad essa correlate, direttamente all'interno del browser:

Ma nell'ambiente di produzione la cache deve essere attivata e, ovviamente, l'applicazione deve mostrare i messaggi di errore personalizzati invece che lo stack delle eccezioni. Quindi, l'ambiente di produzione deve essere ottimizzato per le prestazioni e per la user experience.

Se vengono aperti i file di front controller, si potrà notare che il contenuto degli stessi è uguale ad eccezione dei parametri che definiscono l'ambiente:
// web/index.php <?php require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php'); $configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'prod', false); sfContext::createInstance($configuration)->dispatch();
La toolbar di web debug è un altro grande esempio dell'utilizzo degli ambienti. Questa è presente in tutte le pagine dell'ambiente di sviluppo e dà accesso a molte informazioni cliccando sulle differenti aree, ad esempio: i parametri di configurazione dell'attuale applicazione, i log per la richiesta http corrente, le richieste SQL eseguite sul database, informazioni sulla memoria e sul tempo di esecuzione.
If you find a typo or an error, please register and open a ticket.
If you need support or have a technical question, please post to the official user mailing-list.