Installare e configurare Symfony

Lo scopo di questo capitolo è mettere in grado di avere un’applicazione funzionante basata su Symfony. Per semplificare il processo di creazione di nuove applicazioni, Symfony fornisce un installatore.

Installare l’installatore di Symfony

L’utilizzo dell’installatore di Symfony è l’unico modo raccomandato di creare nuove applicazioni Symfony. Questo installatore è un’applicazione PHP, che va installata solo una volta e che può quindi creare tutte le applicazioni Symfony.

Note

L’installatore richiede PHP 5.4 o successivi. Se si usa ancora la vecchia versione PHP 5.3, non si può usare l’installatore di Symfony. Leggere Creare applicazioni Symfony senza l’installatore per sapere come procedere.

A seconda del sistema operativo, l’installatore va installato in modi diversi.

Sistemi Linux e Mac OS X

Aprire un terminale ed eseguire i seguenti tre comandi:

$ sudo curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony
$ sudo chmod a+x /usr/local/bin/symfony

Questo creerà nel sistema un comando globale symfony.

Sistemi Windows

Aprire la console dei comandi ed eseguire il seguente comando:

c:\> php -r "readfile('https://symfony.com/installer');" > symfony

Quindi, spostare il file symfony.phar nella cartella dei progetti ed eseguirlo, come segue:

c:\> move symfony c:\progetti
c:\progetti\> php symfony

Creare l’applicazione Symfony

Una volta che l’installatore Symfony è pronto, creare la prima applicazione Symfony con il comando new:

# Linux, Mac OS X
$ symfony new progetto

# Windows
c:\> cd projects/
c:\projects\> php symfony.phar new progetto

Questo comando crea una nuova cartella, chiamata progetto, che contiene un nuovo progetto, basato sulla versione di Symfony più recente. Inoltre, l’installatore verifica se il sistema soddisfa i requisiti tecnici per eseguire applicazioni Symfony. In caso negativo, si vedrà una lista di modifiche necessarie a soddisfare tali requisiti.

Tip

Per ragioni di sicurezza, tutte le versioni di Symfony sono firmate digitalmente prima di essere distribuite. Se si vuole verificare l’integrità di una versione di Symfony, seguire i passi spiegati in questo post.

Note

Se l’installatore non funziona o non mostra nulla, assicurarsi che l’estensione Phar sia installata e abilitata.

Basare un progetto su una specifica versione di Symfony

Se un progetto deve essere basato su una specifica versione di Symfony, passare il numero di versione come secondo parametro del comando new:

# usa la versione più recente di un ramo di Symfony
$ symfony new progetto 2.3
$ symfony new progetto 2.5
$ symfony new progetto 2.6

# usa una specifica versione di Symfony
$ symfony new progetto 2.3.26
$ symfony new progetto 2.6.5

# usa la versione LTS (Long Term Support) più recente
$ symfony new progetto lts

Se si vuole basare un progetto sull’ultima versione LTS di Symfony, passare lts come secondo parametro del comando new:

$ symfony new progetto lts

Leggere il processo di rilascio di Symfony per comprendere meglio il motivo per cui esistono varie versioni di Symfony e quale usare per i propri progetti.

Creare applicazioni Symfony senza l’installatore

Se si usa ancora PHP 5.3 o se non si può eseguire l’installatore per altre ragioni, si possono creare applicazioni Symfony usando un metodo alternativo di installazione, basato su Composer.

Composer è un gestore di dipendenze, usato da applicazioni PHP moderne, e può essere usato per creare nuove applicazioni basate sul framework Symfony. Se non lo si ha già installato globalmente, seguire la prossima sezione.

Installare Composer globalmente

Iniziare con installare Composer globalmente.

Creare un’applicazione Symfony con Composer

Una volta installato Composer, eseguire il comando create-project per creare una nuova applicazione Symfony, basata sull’ultima versione stabile:

$ composer create-project symfony/framework-standard-edition progetto

Se si deve basare l’applicazione su una specifica versione di Symfony, fornire la versione come secondo parametro del comando create-project:

$ composer create-project symfony/framework-standard-edition progetto '2.3.*'

Tip

Con una connessione Internet lenta, si potrebbe pensare come Composer non stia facendo nulla. Nel caso, aggiungere l’opzione -vvv al comando precedente per mostrare un output dettagliato di tutto ciò che Composer sta facendo.

Eseguire l’applicazione Symfony

Symfony sfrutta il server web interno fornito da PHP per eseguire applicazioni mentre le si sviluppa. Quindi, per eseguire un’applicazione Symfony basta andare nella cartella del progetto ed eseguire il seguente comando:

$ cd progetto/
$ php app/console server:run

Quindi, aprire un browser ed accedere all’URL http://localhost:8000 per vedere la pagina di benvenuto di Symfony:

Pagina di benvenuto di Symfony

Al posto di questa pagina di benvenuto, si potrebbe vedere una pagina bianca o di errore. Questo dipende da un problema di configurazione dei permessi delle cartelle. Ci sono varie possibili soluzioni, a seconda del sistema operativo. Sono tutte spiegate nella sezione Impostazione dei permessi.

Note

Il server interno di PHP è disponibile in PHP 5.4 o successivi. Se si usa ancora la vecchia versione 5.3, occorrerà configurare un host virtuale nel proprio server web.

Il comando server:run è disponibile solo durante lo sviluppo di un’applicazione. Per eseguire applicazioni Symfony su server di produzione, si dovrà configurare un server web Apache o Nginx, come spiegato in /cookbook/configuration/web_server_configuration.

Dopo aver finito di lavorare su un’applicazione Symfony, si può fermare il server premendo Ctrl+C nel terminale:

Verifica della configurazione di un’applicazione Symfony

Le applicazioni Symfony dispongono di un test per la configurazione del server, che mostra se l’ambiente è pronto per usare Symfony. Accedere al seguente URL per verificare la propria configurazione:

http://localhost:8000/config.php

Se ci sono problemi, correggerli prima di procedere.

Aggiornare applicazioni Symfony

A questo punti, si dispone di un’applicazione Symfony pienamente funzionale, in cui si può sviluppare il proprio progetto. Un’applicazione Symfony dipende da varie librerie esterne. Queste sono scaricate nella cartella vendor/ e sono gestite esclusivamente da Composer.

L’aggiornamento frequente di queste librerie di terze parti è una buona pratica, per prevenire bug e vulnerabilità di sicurezza. Eseguire il comando update di Composer per aggiornarle tutte insieme:

$ cd progetto/
$ composer update

A seconda della complessità del progetto, questo processo di aggiornamento può impiegare anche vari minuti per essere completato.

Tip

Symfony fornisce un comando per verificare se le dipendenze di un progetto contengano vulnerabilità note:

$ php app/console security:check

Una buona pratica di sicurezza consiste nell’eseguire regolarmente questo comando, per poter aggiornare o sostituire delle dipendenze compromesse, il prima possibile.

Installare l’applicazione demo di Symfony

L’applicazione demo di Symfony è un’applicazione funzionate, che mostra il modo raccomandato di sviluppare applicazioni Symfony. L’applicazione è stata concepita come strumento di apprendimento per novizi di Symfony e il suo codice sorgente contiene vai commenti e note utili.

Per scaricare l’applicazione demo di Symfony, eseguire il comando demo dell’installatore di Symfony:

# Linux, Mac OS X
$ symfony demo

# Windows
c:\progetti\> php symfony demo

Una volta scaricata, entrare nella cartella symfony_demo/ ed eseguire il server web interno di PHP, tramite il comando php app/console server:run. Accedere all’URL http://localhost:8000 con un browser per iniziare a usare l’applicazione demo di Symfony.

Installare una distribuzione di Symfony

Il progetto Symfony impacchetta “distribuzioni”, che sono applicazioni pienamente funzionali, che includono le librerie del nucleo di Symfony, una selezione di bundle utili, una struttura di cartelle appropriata e alcune configurazioni predefinite. In effetti, quando è stata creata un’applicazione Symfony, nelle sezioni precedenti, in realtà è stata scaricata la distribuzione predefinita fornita da Symfony, chiamata Symfony Standard Edition.

Symfony Standard Edition è la distribuzione più popolare ed è anche la scelta migliore per sviluppatore che iniziano con Symfony. Tuttavia, la comunità di Symfony ha pubblicato altre distribuzioni, che si potrebbe voler usare in un’applicazione:

  • Symfony CMF Standard Edition è una distribuzione pensata per partire con il progetto Symfony CMF, che rende più facile per gli sviluppatori l’aggiunta di funzionalità CMS ad applicazioni basate sul framework Symfony.
  • Symfony REST Edition mostra come costruire un’applicazione che fornisca un’API REST, usando FOSRestBundle e vari altri bundle correlati.

Uso di un controllo dei sorgenti

Se si usa un sistema di controllo di versione, come Git, si può tranquillamente eseguire il commit do tutto il codice del progetto. Questo perché le applicazioni Symfony contengono già un file .gitignore, preparato appositamente per Symfony.

Per istruzioni specifiche su come impostare al meglio un progetto per essere memorizzato in Git, vedere /cookbook/workflow/new_project_git.

Usare un’applicazione Symfony versionata

Quando si usa Composer èer gestire le dipendenze di un’applicazione, si raccomanda di ignorare l’intera cartella vendor/, prima di eseguire commit di codice nel repository. Questo vuole dire che, quando si esegue il checkout di un’applicazione Symfony da un repository Git, non ci sarà la cartella vendor/ e l’applicazione non funzionerà immediatamente.

Per farlo funzionare, eseguire il checkout dell’applicazione Symfony ed eseguire il comando install di Composer, per scaricare e installare tutte le dipendenze richieste dall’applicazione:

$ cd progetto/
$ composer install

Come fa Composer a sapere quali dipendenze installare? Perché quando si esegue il commit di un’applicazione Symfony su un repository, si includono i file composer.json e composer.lock nel commit. Questi file dicono a Composer quali dipendenze (e in quali specifiche versioni) installare nell’applicazione.

Iniziare lo sviluppo

Ora che si dispone di un’applicazione Symfony pienamente funzionale, si può iniziare lo sviluppo! La distribuzione potrebbe contenere del codice di esempio, verificare sul file README.md incluso (aprirlo come file di testo) per conoscere l’eventuale codice di esempio incluso nella distribuzione.

Chi è nuovo su Symfony può fare riferimento a “Creare pagine in Symfony”, dove si imparerà come creare pagine, cambiare configurazione e ogni altra cosa necessaria per la nuova applicazione.

Assicurarsi di dare un’occhiata anche al ricettario, che contiene una grande varietà di ricette, pensate per risolvere problemi specifici con Symfony.