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

File di configurazione di Symfony

Analisi del file di configurazione di Symfony: come è strutturato, come si accede alle variabili d'ambiente e come definirne i parametri
Analisi del file di configurazione di Symfony: come è strutturato, come si accede alle variabili d'ambiente e come definirne i parametri
Link copiato negli appunti

L'approccio a componenti di

  • ci consente di personalizzare i singoli componenti in maniera molto semplice. Fino alla versione 3 del framework tutte le configurazioni di Symfony e dei relativi bundle esterni aggiunti si trovavano all'interno di un singolo file config.yml. Dalla versione 4 in poi, invece, la direzione presa è verso il divide et impera, ovvero nello scompattare in differenti file le configurazioni in modo da facilitarne la gestione e la manutenzione.

    Se apriamo la directory app/config noteremo diversi file Yaml di configurazione (es. routing, mailer, notifier, ecc.) ma anche delle directory:

    • packages/: contiene le configurazioni dei singoli packages aggiunti con singoli Flex;
    • routes/: contiene le definizioni delle rotte.

    Entrambe le directory hanno al loro interno dei file Yaml ma anche delle directory con i nomi degli environment definiti. Nella maggior parte dei casi, quindi, avremo delle directory dev|test|prod. Questo avviene poiché Symfony ci consente di personalizzare ed estendere delle impostazioni generiche in maniera puntuale per ogni singolo ambiente di sviluppo.

    Vediamo l'esempio di monolog, il package usato per gestire i log applicativi. All'interno del file app/config/packages/dev/monolog.yaml troviamo una configurazione con un livello di log definito a debug, mentre lo stesso file all'interno della directory prod ha, tra le varia configurazioni, lo stesso valore definito a error.

    Cosa vuol dire nel nostro caso? Che, mentre nell'ambiente di sviluppo logghiamo qualsiasi cosa accade all'interno della nostra applicazione così da velocizzare il debug, nell'ambiente di produzione logghiamo solo se il livello definito è superiore o uguale all'errore.

    Nel caso non si conoscessero i livelli di debug di Monolog sono qui riportati in ordine crescente di importanza:
    DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY

    Accedere alle variabili d'ambiente

    Nella lezione precedente abbiamo visto come definire delle variabili d'ambiente in base all'environment di riferimento. Tali variabili possono essere utilizzate all'interno dei file di configurazione come nel file app/config/mailer.yaml:

    framework:
        mailer:
    	    dsn: '%env(MAILER_DSN)%'

    Nell'esempio appena mostrato sarà presente una variabile d'ambiente con nome MAILER_DSN all'interno di uno dei file .env.

    Definire parametri

    Un altro modo per passare dei parametri di configurazione a più file è l'utilizzo dei parameters. Per convenzione tali parametri vengono definiti all'interno del file app/config/services.yaml sotto la chiave parameters. Ad esempio:

    parameters:
    	emails:
    		admin: myfantasticemail@google.com
    		support: supportmyfantasticemail@google.com

    Una volta definito, il parametro è utilizzabile all'interno dei vari file di configurazione nel seguente modo:

    my_service:
    	my_configuration:
    		my_configurable_setting: "%emails.admin%"

    È sufficiente, quindi, racchiudere la proprietà all'interno delle percentuali e, in fase di inizializzazione di Symfony, il parametro verrà automaticamente ricostruito.

    Ti consigliamo anche