Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Struttura dei file in Symfony: root, bin e config

Analizziamo il ruolo delle directory root, bin e config nella struttura dei file del framework PHP Symfony
Analizziamo il ruolo delle directory root, bin e config nella struttura dei file del framework PHP Symfony
Link copiato negli appunti

L’installazione di Symfony ha creato all’interno della nostra directory app lo skeleton di un’applicazione standard.

Figura 1. Symfony File Structure

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.

Ti consigliamo anche