L’installazione di Symfony ha creato all’interno della nostra directory app
lo skeleton di un’applicazione standard.
Root files
Iniziamo dai file presenti nella root:
-rw-r--r-- 1 www-data www-data 1664 Nov 24 15:15 .env
-rw-r--r-- 1 www-data www-data 162 Nov 24 15:09 .env.test
-rw-r--r-- 1 www-data www-data 252 Nov 24 15:09 .gitignore
-rw-r--r-- 1 www-data www-data 2268 Nov 24 15:15 composer.json
-rw-r--r-- 1 www-data www-data 246162 Nov 24 15:15 composer.lock
-rw-r--r-- 1 www-data www-data 1010 Nov 24 15:09 phpunit.xml.dist
-rw-r--r-- 1 www-data www-data 13454 Nov 24 15:15 symfony.lock
I file .env*
contengono le variabili d’ambiente dell’applicazione. Inserendo all’interno di questo file i dati sensibili (ad esempio credenziali di accesso al database, username e password del server SMTP, ecc.) possiamo personalizzarli per ogni ambiente in cui la nostra applicazione girerà.
Il file symfony.lock
funziona in maniera simile al composer.lock
; la differenza tra i due è che il file di Composer serve a fissare la versione delle librerie da cui dipende il progetto mentre il file di Symfony serve a fissare la versione delle Recipe aggiunte con Symfony Flex.
In un solo paragrafo abbiamo aggiunto due termini che sicuramente genereranno confusione: "Flex" e "Recipe". Approfondiremo il discorso nella prossima lezione, per adesso ci è sufficiente sapere che attraverso Symfony Flex e le sue ricette è possibile automatizzare l'integrazione di librerie di terze parti all’interno della nostra applicazione Symfony.
I restanti file composer.*
e phpunit.xml
sono relativi a Symfony ma sono file generici che troviamo nella maggior parte delle applicazioni PHP moderne.
La directory bin/
La directory bin/
contiene i file binari che possiamo richiamare dalla riga di comando. La nostra installazione contiene quello necessario a PHPUnit e il comando console
di Symfony a cui dedicheremo un’apposita lezione. Tale comando è fondamentale per la nostra installazione e, come vedremo, la maggior parte delle operazioni da riga di comando le eseguiremo grazie ad esso.
La directory config/
Come già il nome ci suggerisce, tale directory contiene al suo interno le configurazioni non solo dell’applicazione ma anche delle librerie aggiuntive.
drwxr-xr-x 17 www-data www-data 544 Nov 24 15:15 packages
drwxr-xr-x 4 www-data www-data 128 Nov 24 15:09 routes
drwxr-xr-x 4 www-data www-data 128 Nov 24 15:09 secrets
-rw-r--r-- 1 www-data www-data 1174 Nov 24 15:09 bootstrap.php
-rw-r--r-- 1 www-data www-data 902 Nov 24 15:15 bundles.php
-rw-r--r-- 1 www-data www-data 78 Nov 24 15:09 routes.yaml
-rw-r--r-- 1 www-data www-data 1280 Nov 24 15:09 services.yaml
La cartella packages/
prevede al suo interno le impostazioni relative alle varie librerie utilizzate. In routes/
troveremo le regole per definire le rotte della nostra applicazione mentre secrets/
conterrà al suo interno le informazioni sensibili della nostra applicazione che necessitano di essere criptate.
bootstrap.php
è il file che viene richiamato dal front controller (public/index.php
) prima di avviare l’applicazione. Al suo interno è presente il codice necessario al recupero delle variabili d’ambiente.
Il file bundles.php
definisce quali sono i bundle attivi, ovvero le librerie di terze parti abilitate all’interno della nostra applicazione. In essa è reperibile un array chiave valore con il nome della libreria e gli ambienti in cui essa è attiva (all
se in tutti).
services.yml
definisce invece i servizi che verranno iniettati all’interno del container di Symfony. Anche in questo caso approfondiremo l’argomento nelle prossime lezioni della guida.