
GUIDE PER ASPIRANTI PROGRAMMATORI
Gestione delle dipendenze con Composer
La gestione delle dipendenze è una delle funzionalità principali di Composer, permettendo agli sviluppatori php di definire, installare e mantenere aggiornate le librerie e gli strumenti necessari per un progetto PHP. Il file composer.json Il nucleo centrale di ogni progetto orchestrato da Composer è rappresentato dal file composer.json. All’interno di questo file json sono contenute…


Vuoi avviare una nuova carriera o fare un upgrade?
Trova il corso Digital & Tech più adatto a te nel nostro catalogo!
- Server locale con XAMPP
- Come installare XAMPP
- Come configurare XAMPP
- Gestione del Database con phpMyAdmin
- Che cos’è Composer e il suo ruolo in Symfony
- Come installare e come configurare Composer
- Gestione delle dipendenze con Composer
- Autoloading con Composer
- Scripts e Comandi Personalizzati con Composer
- Come configurare Visual Studio Code
- Ambiente di sviluppo Symfony remoto (Editor online Symfony)
La gestione delle dipendenze è una delle funzionalità principali di Composer, permettendo agli sviluppatori php di definire, installare e mantenere aggiornate le librerie e gli strumenti necessari per un progetto PHP.
Il file composer.json
Il nucleo centrale di ogni progetto orchestrato da Composer è rappresentato dal file composer.json. All’interno di questo file json sono contenute le informazioni necessarie alla definizione delle dipendenze del progetto. Ecco una panoramica dei nodi più importanti:
- require: elenco delle librerie da utilizzare nel progetto con le relative versioni.
- require-dev: elenco librerie necessarie solo per la fase di sviluppo, come ad esempio gli strumenti di testing.
- autoload: regole per l’autoloading delle classi del progetto.
- scripts: script custom
Come installare le dipendenze con Composer
Dopo aver definito le dipendenze nel file composer.json, il passo successivo è installarle. Ecco come:
- Inizializzazione del progetto: per inizializzare un nuovo progetto si può usare il comando composer init che andrà a generare un nuovo file composer.json attraverso una serie di prompt interattivi.
- Aggiunta delle dipendenze: è possibile aggiungere nuove dipendenze al progetto con il comando composer require.
- Installazione: tramite il comando composer install verranno installate tutte le dipendenze definite nel file composer.json.
Come aggiornare le dipendenze con Composer
Mantenere le dipendenze aggiornate è fondamentale per la sicurezza e la stabilità del progetto. Ecco come è possibile farlo:
- Aggiornamento singolo: per aggiornare una singola dipendenza usare il comando composer update vendor/package.
- Aggiornamento completo: per aggiornare tutte le dipendenze alla loro ultima versione compatibile con il selettore di versione indicato usare il comando composer update.
Gestione delle versioni con Composer
Definire correttamente le versioni delle dipendenze è fondamentale per prevenire conflitti e mantenere la compatibilità. Composer supporta una varietà di vincoli di versione, tra cui:
-
- Versioni specifiche: ad esempio 1.0.3.
- Range di versioni: ad esempio >=2.1 <3.0.
- Livello di stabilità: è possibile specificare il livello di stabilità accettato usando flag come @dev @beta ecc ad esempio 1.0.*@beta.
- Operatore Tilde: più flessibile rispetto alla specifica di una versione fissa ma abbastanza restrittivo per evitare aggiornamenti che aggiungono cambiamenti non compatibili.
- ~1.0 equivale a >=1.0 <2.0: accetta qualsiasi versione che inizia con 1. (1.0, 1.1, 1.2, …, 1.9.9).
- ~1.0.0 equivale a >=1.0.0 <1.1.0: accetta qualsiasi versione che inizia con 1.0. (1.0.0, 1.0.1, 1.0.2, …, 1.0.9).
In sostanza, l‘ultimo numero specificato nel vincolo tilde può aumentare, mentre gli altri no.
- Operatore Caret: ancora più flessibile dell’operatore tilde in quanto permette di accettare anche aggiornamenti minori che sono retrocompatibili con la versione attuale. Alcuni esempi:
- ^1.0.0 equivale a >=1.0.0 <2.0.0: accetta qualsiasi versione che inizia con 1. (1.0.0, 1.1.0, 1.2.0, …, 1.9.9), ma non 2.0.0.
- ^0.1.0 equivale a >=0.1.0 <0.2.0: accetta qualsiasi versione che inizia con 0.1. (0.1.0, 0.1.1, 0.1.2, …, 0.1.9), ma non 0.2.0.
- ^0.0.1 equivale a >=0.0.1 <0.0.2: accetta solo patch per la versione 0.0.1.
Come si nota dagli esempi precedenti, permette di aggiornare il pacchetto a qualsiasi nuova versione che non modifica il primo numero non-zero della versione attuale.
Esempio di file composer.json
Per avere una visione più concreta di come è strutturato un file composer.json, prendiamo in considerazione il seguente esempio, che potrebbe essere utilizzato come base di in un progetto in Symfony:
{ "name": "me/myproject", "type": "project", "license": "MIT", "description": "Progetto esempio Symfony", "authors": [ { "name": "Nome Autore", "email": "[email protected]" } ], "require": { "php": ">=8.1", "doctrine/orm": "^2.11", "symfony/framework-bundle": "^6.3", "symfony/console": "^6.3", "symfony/yaml": "^6.3" }, "require-dev": { "symfony/browser-kit": "^6.3", "symfony/phpunit-bridge": "^6.3", "symfony/debug-bundle": "^6.3", }, "autoload": { "psr-4": { "App\\": "src/" } }, "autoload-dev": { "psr-4": { "App\\Tests\\": "tests/" } }, "config": { "preferred-install": { "*": "dist" }, "sort-packages": true } }
In questo esempio:
- name: identifica univocamente il progetto.
- type: specifica il tipo di progetto.
- license: definisce la licenza sotto cui è distribuito il progetto.
- description: fornisce una breve descrizione del progetto.
- authors: elenco degli autori del progetto.
- require: elenco delle dipendenze necessarie per il progetto.
require-dev: dipendenze necessarie solo per lo sviluppo.
CONTENUTI GRATUITI IN EVIDENZA
Guide per aspiranti programmatori 👨🏻🚀
Vuoi muovere i primi passi nel Digital e Tech? Abbiamo preparato alcune guide per aiutarti a orientarti negli ambiti più richiesti oggi.