Ricerca…


introduzione

Composer è il gestore delle dipendenze più comunemente utilizzato da PHP. È analogo a npm in Node, pip per Python o NuGet per .NET.

Sintassi

  • percorso php / to / composer.phar [comando] [opzioni] [argomenti]

Parametri

Parametro Dettagli
licenza Definisce il tipo di licenza che si desidera utilizzare nel progetto.
autori Definisce gli autori del progetto, così come i dettagli dell'autore.
supporto Definisce le email di supporto, il canale IRC e vari collegamenti.
richiedere Definisce le dipendenze effettive e le versioni del pacchetto.
require-dev Definisce i pacchetti necessari per lo sviluppo del progetto.
suggerire Definisce i suggerimenti del pacchetto, ovvero i pacchetti che possono essere d'aiuto se installati.
autoload Definisce le politiche di autoloading del progetto.
autoload-dev Definisce le politiche di autoloading per lo sviluppo del progetto.

Osservazioni

L'autocaricamento funzionerà solo per le librerie che specificano le informazioni sul caricamento automatico. La maggior parte delle librerie fa e aderisce a uno standard come PSR-0 o PSR-4 .

Collegamenti utili

Pochi suggerimenti

  1. Disabilita xdebug durante l'esecuzione di Composer.
  2. Non eseguire Composer come root . I pacchetti non sono affidabili.

Cos'è il compositore?

Composer è un gestore di dipendenze / pacchetti per PHP. Può essere utilizzato per installare, tenere traccia di e aggiornare le dipendenze del progetto. Composer si occupa anche dell'autoloading delle dipendenze su cui si basa la tua applicazione, permettendoti di usare facilmente la dipendenza all'interno del tuo progetto senza preoccuparti di includerle nella parte superiore di qualsiasi file.

Le dipendenze per il progetto sono elencate all'interno di un file composer.json che si trova in genere nella root del progetto. Questo file contiene informazioni sulle versioni richieste dei pacchetti per la produzione e anche lo sviluppo.

Una descrizione completa dello schema composer.json è disponibile sul sito Web di Composer .

Questo file può essere modificato manualmente utilizzando qualsiasi editor di testo o automaticamente tramite la riga di comando tramite comandi come composer require <package> o composer require-dev <package> .

Per iniziare a usare il compositore nel tuo progetto, dovrai creare il file composer.json . Puoi crearlo manualmente o semplicemente avviare composer init . Dopo aver eseguito composer init nel tuo terminale, ti verrà chiesto alcune informazioni di base sul tuo progetto: Nome del pacchetto ( fornitore / pacchetto - ad esempio laravel/laravel ), Descrizione - facoltativo , Autore e alcune altre informazioni come Stabilità minima, Licenza e Richiesto Pacchi.

La chiave require nel tuo file composer.json specifica Composer da quale pacchetto dipende il tuo progetto. require prende un oggetto che mappa i nomi dei pacchetti (ad es. monolog / monolog ) ai vincoli della versione (es . 1.0. *).

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

Per installare le dipendenze definite, sarà necessario eseguire il comando di composer install e troverà quindi i pacchetti definiti che corrispondono al vincolo di version fornito e lo scaricano nella directory del vendor . È una convenzione inserire il codice di terze parti in una directory denominata vendor .

Noterai che il comando install anche creato un file composer.lock .

Un file composer.lock viene generato automaticamente da Composer. Questo file viene utilizzato per tenere traccia delle versioni e dello stato delle dipendenze attualmente installati. L' composer install esecuzione installerà i pacchetti esattamente nello stato memorizzato nel file di blocco.

Caricamento automatico con Composer

Mentre compositore fornisce un sistema per gestire le dipendenze per i progetti PHP (ad esempio da Packagist ), può anche servire come caricatore automatico, specificando dove cercare spazi dei nomi specifici o includere file di funzioni generiche.

Inizia con il file composer.json :

{
    // ...
    "autoload": {
        "psr-4": {
            "MyVendorName\\MyProject": "src/"
        },
        "files": [
            "src/functions.php"
        ]
    },
    "autoload-dev": {
        "psr-4": {
            "MyVendorName\\MyProject\\Tests": "tests/"
        }
    }
}

Questo codice di configurazione assicura che tutte le classi nello spazio dei nomi MyVendorName\MyProject siano mappate alla directory src e tutte le classi in MyVendorName\MyProject\Tests nella directory dei tests (relativa alla directory principale). Inoltre includerà automaticamente il file functions.php .

Dopo aver inserito questo nel tuo file composer.json , esegui l' composer update in un terminale per fare in modo che il compositore aggiorni le dipendenze, il file di blocco e generi il file autoload.php . Quando si esegue la distribuzione in un ambiente di produzione si utilizza l' composer install --no-dev . Il file autoload.php può essere trovato nella directory del vendor che dovrebbe essere generata nella directory in cui risiede composer.json .

È necessario require questo file all'inizio di un punto di installazione nel ciclo di vita dell'applicazione utilizzando una linea simile a quella riportata di seguito.

require_once __DIR__ . '/vendor/autoload.php';

Una volta incluso, il file autoload.php si occupa di caricare tutte le dipendenze fornite nel file composer.json .

Alcuni esempi del percorso di classe per la mappatura delle directory:

  • MyVendorName\MyProject\Shapes\Squaresrc/Shapes/Square.php .
  • MyVendorName\MyProject\Tests\Shapes\Squaretests/Shapes/Square.php .

Vantaggi dell'uso di Composer

Composer tiene traccia di quali versioni di pacchetti sono state installate in un file chiamato composer.lock , che è destinato al controllo della versione, in modo che quando il progetto viene clonato in futuro, l' composer install Composer venga semplicemente scaricata e installata tutte le dipendenze del progetto .

Il compositore si occupa delle dipendenze PHP in base al progetto. In questo modo è facile avere diversi progetti su una macchina che dipendono da versioni separate di un pacchetto PHP.

Le tracce del compositore che dipendono solo da ambienti dev

composer require --dev phpunit/phpunit

Composer fornisce un caricatore automatico, rendendo estremamente facile iniziare con qualsiasi pacchetto. Ad esempio, dopo aver installato Goutte con il composer require fabpot/goutte , puoi immediatamente iniziare a utilizzare Goutte in un nuovo progetto:

<?php

require __DIR__ . '/vendor/autoload.php';

$client = new Goutte\Client();

// Start using Goutte

Composer ti consente di aggiornare facilmente un progetto all'ultima versione consentita da compositore.json. PER ESEMPIO. composer update fabpot/goutte o per aggiornare ciascuna delle dipendenze del progetto: composer update .

Differenza tra "compositore install" e "compositore aggiornato"

composer update

composer update le nostre dipendenze così come sono specificate in composer.json .

Ad esempio, se il nostro progetto utilizza questa configurazione:

"require": {
    "laravelcollective/html": "2.0.*"
}

Supponendo di aver effettivamente installato la versione 2.0.1 del pacchetto, l'esecuzione composer update causerà un aggiornamento di questo pacchetto (ad esempio 2.0.2 , se è già stato rilasciato).

In dettaglio l' composer update :

  • Leggi composer.json
  • Rimuovi i pacchetti installati che non sono più necessari in composer.json
  • Controlla la disponibilità delle ultime versioni dei nostri pacchetti richiesti
  • Installa le ultime versioni dei nostri pacchetti
  • Aggiorna composer.lock per memorizzare la versione dei pacchetti installati

composer install

composer install tutte le dipendenze come specificato nel file composer.lock alla versione specificata (bloccata), senza aggiornare nulla.

In dettaglio:

  • Leggi il file composer.lock
  • Installa i pacchetti specificati nel file composer.lock

Quando installare e quando aggiornare

  • composer update è usato principalmente nella fase di 'sviluppo', per aggiornare i nostri pacchetti di progetto.

  • composer install viene utilizzata principalmente nella "fase di distribuzione" per installare la nostra applicazione su un server di produzione o su un ambiente di test, utilizzando le stesse dipendenze memorizzate nel file composer.lock creato composer update .

Comandi disponibili del compositore

Comando uso
di Brevi informazioni su Composer
archivio Crea un archivio di questo pacchetto di compositori
navigare Apre l'URL del repository del pacchetto o la homepage nel browser.
clear-cache Cancella la cache interna del pacchetto del compositore.
clearcache Cancella la cache interna del pacchetto del compositore.
config Imposta le opzioni di configurazione
creare-project Crea un nuovo progetto da un pacchetto in una determinata directory.
dipende Mostra quali pacchetti causano l'installazione del pacchetto specificato
diagnosticare Diagnostica il sistema per identificare errori comuni.
discarica-autoload Scarica il caricatore automatico
dumpautoload Scarica il caricatore automatico
exec Esegui un binario / script venduto
globale Permette di eseguire comandi nella directory globale del compositore ($ COMPOSER_HOME).
Aiuto Visualizza la guida per un comando
casa Apre l'URL del repository del pacchetto o la homepage nel browser.
Informazioni Mostra informazioni sui pacchetti
dentro Crea un file composer.json di base nella directory corrente.
installare Installa le dipendenze del progetto dal file composer.lock se presente o ricade su composer.json.
licenze Mostra informazioni sulle licenze di dipendenza
elenco Elenca i comandi
antiquato Mostra un elenco di pacchetti installati con aggiornamenti disponibili, inclusa la loro versione più recente.
vieta Mostra quali pacchetti impediscono l'installazione del pacchetto specificato
rimuovere Rimuove un pacchetto dal require o require-dev
richiedere Aggiunge i pacchetti richiesti a composer.json e li installa
eseguire script Esegui gli script definiti in composit.json.
ricerca Cerca i pacchetti
aggiornamento automatico Aggiorna composer.phar all'ultima versione.
selfupdate Aggiorna composer.phar all'ultima versione.
mostrare Mostra informazioni sui pacchetti
stato Mostra un elenco di pacchetti modificati localmente
suggerisce Mostra i suggerimenti del pacchetto
aggiornare Aggiorna le dipendenze alla versione più recente in base a composer.json e aggiorna il file composer.lock.
convalidare Convalida un compositore. Json e compositore.lock
perché Mostra quali pacchetti causano l'installazione del pacchetto specificato
perchè no Mostra quali pacchetti impediscono l'installazione del pacchetto specificato

Installazione

È possibile installare Composer localmente, come parte del progetto, o globalmente come eseguibile a livello di sistema.

localmente

Per installare, esegui questi comandi nel tuo terminale.

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# to check the validity of the downloaded installer, check here against the SHA-384:
# https://composer.github.io/pubkeys.html
php composer-setup.php
php -r "unlink('composer-setup.php');"

Questo scaricherà composer.phar (un file di archivio PHP) nella directory corrente. Ora puoi eseguire php composer.phar per usare Composer, ad es

php composer.phar install

A livello globale

Per utilizzare Composer a livello globale, posiziona il file composer.phar in una directory che fa parte del PATH

mv composer.phar /usr/local/bin/composer

Ora puoi usare il composer ovunque al posto di php composer.phar , ad es

composer install


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow