PHP
Responsabile della dipendenza da compositore
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
- Packagist - Sfoglia i pacchetti disponibili (che puoi installare con Composer).
- Documentazione ufficiale
- Guida introduttiva ufficiale
Pochi suggerimenti
- Disabilita xdebug durante l'esecuzione di Composer.
- 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\Square
➔src/Shapes/Square.php
. -
MyVendorName\MyProject\Tests\Shapes\Square
➔tests/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 filecomposer.lock
creatocomposer 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