Installare e configurare Symfony

Lo scopo di questo capitolo è quello di ottenere un’applicazione funzionante basata su Symfony. Fortunatamente, Symfony offre delle “distribuzioni”, che sono progetti Symfony di partenza funzionanti, che possono essere scaricati per iniziare immediatamente a sviluppare.

Tip

Se si stanno cercando le istruzioni per creare un nuovo progetto e memorizzarlo con un sistema di versionamento, si veda Usare un controllo di sorgenti.

Scaricare una distribuzione Symfony2

Tip

Verificare innanzitutto di avere un server web (come Apache) installato e funzionante con PHP. Per ulteriori informazioni sui requisiti di Symfony2, si veda il riferimento sui requisiti.

Symfony2 ha dei pacchetti con delle “distribuzioni”, che sono applicazioni funzionanti che includono le librerie del nucleo di Symfony2, una selezione di bundle utili e alcune configurazioni predefinite. Scaricando una distribuzione di Symfony2, si ottiene uno scheletro di un’applicazione funzionante, che può essere subito usata per sviluppare la propria applicazione.

Si può iniziare visitando la pagina di scaricamento di Symfony2, http://symfony.com/download. Su questa pagina, si vedrà la Symfony Standard Edition, che è la distribuzione principale di Symfony2. Si possono fare due scelte:

Opzione 1) Composer

Composer è una libreria di gestione delle dipendenze per PHP, utilizzabile per scaricare Symfony2 Standard Edition.

Iniziare con lo scaricare Composer sul proprio computer. Se si ha curl installato, è facile:

$ curl -s https://getcomposer.org/installer | php

Note

Se il computer non è pronto per usare Composer, si otterranno alcune raccomandazioni all’esecuzione del comando. Seguire tali raccomandazioni per far funzionare Composer correttamente.

Composer è un file PHAR eseguibile, che si può usare per scaricare la distribuzione Standard:

$ php composer.phar create-project symfony/framework-standard-edition /percorso/web/Symfony 2.4.*

Tip

Per scaricare i file dei venditori più velocemente, aggiungere l’opzione --prefer-dist alla fine di ogni comando di Composer.

Tip

Aggiungere l’opzione -vvv per vedere cosa sta facendo Composer. Può essere particolarmente utile su una connessione lenta, dove si potrebbe avere l’impressione che non stia accadendo nulla.

Questo comando può richiedere diversti minuti, mentre Composer scarica la distribuzione Standard e tutte le librerie dei venditori necessarie. Quando avrà finito, si dovrebbe avere una cartella simile a questa:

percorso/web/ <- la cartella radice del web (a volte chiamata htdocs o public)
    Symfony/ <- la nuova cartella
        app/
            cache/
            config/
            logs/
        src/
            ...
        vendor/
            ...
        web/
            app.php
            ...

Opzione 2) Scaricare un archivio

Si può anche scaricare un archivio della Standard Edition. Qui, si possono fare due scelte:

  • Scaricare un archivio .tgz o .zip (sono equivalenti, scegliere quello che si preferisce);
  • Scaricare la distribuzione con o senza venditori. Se si pensa di usare molte librerie o bundle di terze parti e gestirli tramite Composer, probabilmente sarà meglio scaricare quella senza venditori.

Scaricare uno degli archivi e scompattarlo da qualche parte sotto la cartella radice del web del server. Da linea di comando UNIX, lo si può fare con uno dei seguenti comandi (sostituire ### con il vero nome del file):

# per il file .tgz
$ tar zxvf Symfony_Standard_Vendors_2.3.###.tgz

# per il file .zip
$ unzip Symfony_Standard_Vendors_2.3.###.zip

Se si è optato per la versione senza venditori, occorerà leggere la prossima sezione.

Note

Si può facilmente modificare la struttura predefinita di cartelle. Si veda /cookbook/configuration/override_dir_structure per maggiori informazioni.

Tutti i file pubblici e il front controller, che gestisce le richieste in arrivo in un’applicazione Symfony2, si trovano nella cartella Symfony/web/. Quindi, ipotizzando di aver decompresso l’archivio nella cartella radice del server web o di un host virtuale, gli URL dell’applicazione inizieranno con http://localhost/Symfony/web/.

Note

Gli esempi che seguono ipotizzano che le impostazioni sulla cartella radice non siano state modificate, quindi tutti gli URL inizieranno con http://localhost/Symfony/web/

Aggiornare i venditori

A questo punto, si dispone di un progetto Symfony funzionale, nel quale si può iniziare a sviluppare la propria applicazione. Un progetto Symfony dipende da diverse librerie esterne. Queste vanno scaricate nella cartella vendor/ del progetto, tramite una libreria chiamata Composer.

A seconda di come Symfony è stato scaricato, si potrebbe aver bisogno o meno di aggiornare i venditori. Aggiornare i venditori è sempre sicuro e garantisce di disporre di tutte le librerie necessarie.

Passo 1: Ottenere Composer (il nuovo bellissimo sistema di pacchetti PHP)

$ curl -s http://getcomposer.org/installer | php

Assicurarsi di scaricare composer.phar nella stessa cartella in cui si trova il file composer.json (per impostazione predefinita, la radice del progetto Symfony).

Passo 2: Installare i venditori

$ php composer.phar install

Questo comando scarica tutte le librerie dei venditori necessarie, incluso Symfony stesso, nella cartella vendor/.

Note

Se non si ha curl installato, si può anche scaricare il file installer a mano, da http://getcomposer.org/installer. Mettere il file nel progetto ed eseguire:

$ php installer
$ php composer.phar install

Tip

Quando si esegue php composer.phar install o php composer.phar update, composer eseguirà dei comandi post installazione/aggiornamento per pulire la cache e installare le risorse. Per impostazione predefinita, le risorse saranno copiate nella cartella web.

Invece di copiare le risorse, si possono creare dei collegamenti simbolici, se supportato dal sistema operativo. Per creare collegamenti simbolici, aggiungere una voce nel nodo extra del file composer.json, con chiave symfony-assets-install e valore symlink:

"extra": {
    "symfony-app-dir": "app",
    "symfony-web-dir": "web",
    "symfony-assets-install": "symlink"
}

Passando relative invece di symlink a symfony-assets-install, il comando genererà collegamenti simbolici relativi.

Configurazione

A questo punto, tutte le librerie di terze parti necessarie sono nella cartella vendor/. Si dispone anche una configurazione predefinita dell’applicazione in app/ e un po’ di codice di esempio in src/.

Symfony2 dispone di uno strumento visuale per la verifica della configurazione del server, per assicurarsi che il server web e PHP siano configurati per usare Symfony2. Usare il seguente URL per la verifica della configurazione:

http://localhost/config.php

Se ci sono problemi, correggerli prima di proseguire.

Quando tutto è a posto, cliccare su “Go to the Welcome page” per accedere alla prima “vera” pagina di Symfony2:

http://localhost/app_dev.php/

Symfony2 dovrebbe dare il suo benvenuto e congratularsi per il lavoro svolto finora!

images/quick_tour/welcome.png

Tip

Per ottenere URL brevi, si dovrebbe far puntare la cartella radice del server web o un host virtuale alla cartella Symfony/web/. Sebbene non sia obbligatorio per lo sviluppo, è raccomandato nel momento in cui l’applicazione va in produzione, perché tutti i file di sistema e di configurazione diventeranno inaccessibili ai client. Perinformazioni sulla configurazione di uno specifico server web, leggere /cookbook/configuration/web_server_configuration o consultare la documentazione ufficiale del server: Apache | Nginx .

Iniziare lo sviluppo

Ora che si dispone di un’applicazione Symfony2 pienamente funzionante, si può iniziare lo sviluppo. La distribuzione potrebbe contenere del codice di esempio, verificare il file README.md incluso nella distribuzione (aprendolo come file di testo) per sapere quale codice di esempio è incluso nella distribuzione scelta.

Per chi è nuovo in Symfony, in “Creare pagine in Symfony2” si può imparare come creare pagine, cambiare configurazioni e tutte le altre cose di cui si avrà bisogno nella nuova applicazione.

Dare un’occhiata anche al ricettario, che contiene una varietà di articoli su come risolvere problemi specifici con Symfony.

Note

Se si vuole rimuovere il codice di esempio dalla distribuzione, dare un’occhiata a questa ricetta: “/cookbook/bundles/remove

Usare un controllo di sorgenti

Se si usa un sistema di controllo di versioni, come Git o Subversion, lo si può impostare e iniziare a fare commit nel proprio progetto, come si fa normalmente. Symfony Standard edition è il punto di partenza per il nuovo progetto.

Per istruzioni specifiche su come impostare al meglio il proprio progetto per essere memorizzato in git, si veda /cookbook/workflow/new_project_git.

Ignorare la cartella vendor/

Chi ha scelto di scaricare l’archivio senza venditori può tranquillamente ignorare l’intera cartella vendor/ e non inviarla in commit al controllo di sorgenti. Con Git, lo si può fare aggiungendo al file .gitignore la seguente riga:

/vendor/

Ora la cartella dei venditori non sarà inviata in commit al controllo di sorgenti. Questo è bene (anzi, benissimo!), perché quando qualcun altro clonerà o farà checkout del progetto, potrà semplicemente eseguire lo script php composer.phar install per scaricare tutte le librerie dei venditori necessarie.