Composer (software)

Composer è un gestore di pacchetti a livello applicativo per il linguaggio di programmazione PHP, che fornisce un formato standard per la gestione delle dipendenze dei progetti PHP e delle librerie richieste. È stato sviluppato da Nils Adermann e Jordi Boggiano, che continuano a gestire il progetto. Hanno iniziato lo sviluppo nell'aprile 2011 e lo hanno pubblicato il 1º marzo 2012.[1] Composer è fortemente ispirato al npm di Node.js e al bundler di Ruby.[2] L'algoritmo di risoluzione delle dipendenze del progetto era basato inizialmente su di un port PHP del satsolver libzypp di openSUSE.[1]

Composer
software
Logo
Logo
GenereSistema di gestione dei pacchetti
Sviluppatore
  • Nils Adermann
  • Jordi Boggiano
Data prima versione1º marzo 2012
Ultima versione2.7.6 (4 maggio 2024)
Sistema operativoMultipiattaforma
LinguaggioPHP
LicenzaLicenza MIT
(licenza libera)
Sito webgetcomposer.org/

Composer viene eseguito da riga di comando e si occupa di installare le dipendenze (ad esempio le librerie) dell'applicazione. Consente inoltre agli utenti di installare applicazioni PHP disponibili su "Packagist",[3] il suo repository principale di pacchetti. Fornisce inoltre funzionalità di autoload per le librerie che ne prevedono il supporto, per facilitare l'utilizzo di codice di terze parti.

Sintassi modifica

Comandi modifica

Composer offre diversi parametri tra cui:[4]

  • require: aggiunge la libreria specificata nel parametro al file composer.json e la installa;
  • install: installa tutte le librerie elencate dal composer.json; è il comando da utilizzare per scaricare tutte le dipendenze da repository PHP;
  • update: aggiorna tutte le librerie elencate dal composer.json, in base alle versioni consentite menzionate in esso;
  • remove: disinstalla una libreria e la rimuove dal composer.json.

Definizione librerie modifica

Esempio di composer.json generato dal seguente comando:

composer require monolog/monolog
{
  "require": {
    "monolog/monolog": "1.2.*"
  }
}

Versioni modifica

Le diverse versioni autorizzate delle librerie sono definite da:[5]

Simbolo Ruolo (posto prima di un numero di versione) Esempio
>= permette di estendere il numero; è possibile usare anche: >, <, <= "php": ">=5.5.9" include PHP 7
!= esclude una versione
- definisce un intervallo di versioni
¦¦ aggiunge possibili versioni "symfony/symfony": "2.8 ¦¦ 3.0" raggruppa solo queste due versioni
* si estende a tutte le sottoversioni "symfony/symfony": "3.1.*" include 3.1.1
~ si estende alle versioni successive dello stesso livello "doctrine/orm": "~2.5" comprende anche il 2.6, ma né il 2.4, né il 3.0
^ uguale alla tilde, solo se è prevista una retrocompatibilità

Framework supportati modifica

  • Symfony versione 2 e successive
  • Laravel versione 4 e successive
  • CodeIgniter versione 3.0 e successive
  • CakePHP versione 3.0 e successive
  • FuelPHP versione 2.0 e successive
  • Drupal versione 8 e successive
  • TYPO3 versione 6.2 e successive
  • SilverStripe versione 3.0 successive
  • Magento versione 2.0 successive
  • Yii versione 1.1 e successive
  • Zend Framework versione 1 e successive
  • Silex
  • Lumen

Note modifica

  1. ^ a b (EN) Release software, su GitHub. URL consultato il 27 novembre 2020.  
  2. ^ (EN) Getting Started/Dependency management, su getcomposer.org. URL consultato il 27 novembre 2020.
  3. ^ (EN) Packagist, su packagist.org. URL consultato il 27 novembre 2020.
  4. ^ (EN) Command-line interface / Commands, su getcomposer.org. URL consultato il 28 novembre 2020.
  5. ^ (EN) Versions and constraints, su getcomposer.org. URL consultato il 28 novembre 2020.

Voci correlate modifica

Altri progetti modifica

Collegamenti esterni modifica