Guide galattiche per aspiranti programmatori

Web developers che, seduti su un grande schermo, scrivono codice
Lezione 20 / 33

Come utilizzare Symfony Flex

Che cos’è Symfony Flex?

Symfony Flex è un plugin Composer che possiamo utilizzare per gestire le dipendenze nel nostro progetto e per automatizzare molte delle attività più comuni che si eseguono durante lo sviluppo di un’applicazione Symfony.

Flex è presente nell’installazione base avviata tramite Symfony installer. Per aggiungerlo manualmente è possibile farlo tramite il comando:

composer require symfony/flex

Dopo l’installazione, Flex inizierà automaticamente a gestire le Recipe.

 

Cosa sono le Recipe in Symfony?

Symfony Flex è basato sul concetto di Recipe (letteralmente ricette), ovvero un insieme di istruzioni automatizzate che vengono eseguite quando viene aggiunto, aggiornato o rimosso un pacchetto ad una applicazione Symfony. Le recipe possono effettuare le seguenti operazioni sul progetto dove vengono lanciate:

 

  • Creare e modificare file e cartelle
  • Aggiungere nuove configurazioni
  • Aggiungere variabili d’ambiente

Le recipe sono sono reperibili al link recipe ufficiali Symfony. Oltre a quelle ufficiali, sviluppate dal team di Symfony, sono disponibili anche quelle della community (e, quindi, sviluppate da terzi), al link recipe della community Symfony.

 

Struttura di una Recipe in Symfony

Ogni recipe è strutturata seguendo un insieme di cartelle e file ben definiti:

 

nome-recipe/
├── config/
│   └── packages/
│       └── nome_pacchetto.yaml
├── src/
│   └── ...
├── templates/
│   └── ...
├── public/
│   └── ...
├── manifest.json
└── README
  • config/: contiene le configurazioni specifiche del pacchetto. Le configurazioni sono di solito definite in file YAML all’interno della sottocartella packages/.
  • src/: può contenere file con codice sorgente da aggiungere al progetto durante l’installazione del pacchetto.
  • templates/: contiene template Twig che possono essere utilizzati o estesi all’interno del progetto.
  • public/: può contenere asset pubblici, come CSS, JavaScript e immagini, che vengono utilizzati dal pacchetto.
  • manifest.json: questo è il file centrale della recipe. All’interno di esso sono definite una serie di istruzioni che Flex seguirà durante l’installazione del pacchetto. Ad esempio:
    • copiare file e cartelle dalla recipe al progetto.
    • eseguire script durante l’installazione.
    • aggiungere variabili d’ambiente al file .env del progetto.
    • aggiungere nuove configurazioni ai file già presenti nel progetto o aggiungere nuovi file di configurazione
  • README: contiene istruzioni e informazioni sul pacchetto, fornendo una guida su come utilizzare il pacchetto una volta installato.

Utilizzo di Symfony Flex

Symfony Flex utilizza il file symfony.lock presente all’interno della root del progetto per gestire le versioni delle librerie ma questo passaggio è trasparente allo sviluppatore php che continuerà ad utilizzare Composer per l’aggiunta di nuove librerie.

Infatti, Flex è controllato da tre semplici comandi.

  • require: per installare un nuovo pacchetto è sufficiente usare il comando composer require seguito dal nome del pacchetto:

    composer require nome/pacchetto
  • update: per aggiornare una dipendenza alla sua ultima versione usare il comando composer update seguito dal nome del pacchetto:

    composer update nome/pacchetto
  • remove: infine, per rimuovere un pacchetto, usare il comando composer remove seguito dal nome del pacchetto:
    composer remove nome/pacchetto

Come installare Twig con Symfony Flex

Grazie all’ausilio di Symfony Flex è possibile installare e configurare Twig, il template engine per la creazione delle interfacce web, con un solo comando:

composer require twig

Il package twig per il quale è stata richiesta l’installazione, non fa riferimento al package Composer ma è un alias di Flex che punta a symfony/twig-bundle. Flex si occuperà, per prima cosa, di risolvere gli alias per Composer. Successivamente, installerà la recipe del pacchetto richiesto.

 

In particolare, la recipe di Twig, si occupa di:

  • abilitare automaticamente la nuova funzionalità in config/bundles.php
  • aggiungere in config/packages il file twig.yaml contenente la configurazione di default di Twig
  • aggiungere in config/packages/test il file twig.yaml contenente alcune opzioni di configurazione da utilizzare durante i test
  • creare la cartella templates ed all’interno il file di layout base.html.twig

 

Il codice sorgente della recipe è disponibile sul repository Github di Symfony relativo alle recipe ufficiali

La struttura di cartelle, per twig-bundle è la seguente:

symfony flex

Il file manifest.json contiene:

 

{
    "bundles": {
        "Symfony\\Bundle\\TwigBundle\\TwigBundle": ["all"]
    },
    "copy-from-recipe": {
        "config/": "%CONFIG_DIR%/",
        "templates/": "templates/"
    },
    "conflict": {
        "symfony/framework-bundle": "<5.3"
    }
}

Il nodo bundles indica quali bundles attivare all’interno in Symfony e, quindi, all’interno del file config/bundles.php.

Il nodo copy-from-recipe indica quali cartelle dovranno essere copiate dalla recipe e dove all’interno del progetto. In questo caso specifico, la cartella config verrà copiata in %CONFIG_DIR%/ ovvero la cartella config del progetto e templates in templates andando a creare una nuova cartella nella root del progetto.

Contattaci senza impegno per informazioni sul corso

Scopriamo insieme se i nostri corsi fanno per te. Compila il form e aspetta la chiamata di uno dei nostri consulenti.

Contattaci senza impegno per informazioni sul corso

Pagamento rateale

Valore della rata: A PARTIRE DA 112 €/mese.

Esempio di finanziamento  

Importo finanziato: € 2440 in 24 rate da € 112 – TAN fisso 9,37% TAEG 12,57% – importo totale del credito € 2788,68.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/07/2023 al 31/12/2023.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

* In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Pagamento rateale

Valore della rata: A PARTIRE DA 183 €/mese.

Esempio di finanziamento 

Importo finanziato: € 3990 in 24 rate da € 183 – TAN fisso 9,37% TAEG 12,57% – importo totale del credito € 4496,56.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/07/2023 al 31/12/2023.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

* In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.