Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Packagist: il repository predefinito per Composer

Scopriamo il funzionamento di Packagist, l'archivio di default che Composer interroga per la gestione delle dipendenze.
Scopriamo il funzionamento di Packagist, l'archivio di default che Composer interroga per la gestione delle dipendenze.
Link copiato negli appunti

Un gestore delle dipendenze automatizzato per poter funzionare correttamente deve avere accesso ad un repository che raccolga i pacchetti compatibili interrogare: Composer non fa eccezione e questo ruolo è svolto da Packagist. In realtà Packagist è soltanto l'archivio di default che il gestore delle dipendenze interroga ma, essendo pubbliche le specifiche di interrogazione, è possibile fare in modo che ne vengano utilizzate anche versione private.

Segnalare una nuova libreria

Il sito web, accessibile in maniera gratuita, contiene i riferimenti a migliaia di pacchetti open source. L'aggiunta di un pacchetto da parte di uno sviluppatore è estremamente semplice: dopo aver creato un account è possibile segnalare l'url pubblica del repository (git, svn..) contenente il codice da aggiungere. Il crawler del sito effettuerà immediatamente un controllo sull'indirizzo fornito e in pochi minuti la libreria sarà disponibile per chiunque utilizzi Composer.

L'unico requisito è la presenza nella root del progetto di un file config.json correttamente formattato. Oltre a quanto già visto è possibile, e consigliato, specificare una serie di metadati utili per la descrizione del pacchetto o per poter contattare lo sviluppatore.

La direttiva keywords accetta come valore un array composto da parole chiave o tag legati allo scopo della libreria. Questi dati sono utili nella pubblicazione su un repository dotato di funzionalità di ricerca in modo da poter identificare le funzionalità fornite dal pacchetto.

Un pacchetto distribuito può avere uno o più autori e nel file composer.json è possibile usare la direttiva authors che accetta un array di autori. Per ognuno si può specificare il nome (name), l'email (email), l'homepage personale (homepage) e il ruolo (role) assunto nell'ambito del progetto come ad esempio sviluppatore, traduttore o grafico.

In maniera analoga è possibile fornire l'indirizzo web per ottenere informazioni ufficiali sul progetto tramite la direttiva homepage. Per le informazioni di supporto si possono poi specificare diversi recapiti all'interno nell'impostazione support:

Recapito Descrizione
email Generico contatto informativo
issues Link ad un gestore di segnalazioni di bug e problemi
irc Canale IRC per ottenere supporto
forum Link ad un forum di supporto
wiki Link ad un sito informativo in formato wiki
docs Link alla documentazione
source Link al codice sorgente (es.: un repository su github)
rss Feed di aggiornamento in RSS

Tutte queste informazioni sono sfruttate direttamente da Packagist per arricchire la scheda del singolo pacchetto in modo da fornire accesso diretto alle funzionalità più richieste.

L'aggiornamento dei pacchetti

Packagist, in maniera analoga al funzionamento di un motore di ricerca classico, controlla periodicamente i repository segnalati per nuove versioni delle librerie in modo da aggiornare il proprio archivio di informazioni. Questo controllo automatico viene eseguito almeno una volta a settimana ma è possibile usufruire di una modalità push per la segnalazione di ogni modifica effettuata in modo che questa venga recepita immediatamente.

Dall'interfaccia grafica del sito, nella sezione privata dell'account, è possibile vedere la lista dei pacchetti ed effettuare una richiesta manuale per l'aggiornamento. Inoltre Packagist espone delle API protette da token segreti che permettono di effettuare la stessa richiesta anche da linea di comando: in questo modo si piò semplificare la procedura e, ad esempio, aggiungere la richiesta di aggiornamento ad un hook locale di git che, alla creazione di un nuovo tag, inviti il crawler a recepire le modifiche.

GitHub permette l'integrazione tra le proprie opzioni di default rendendo la procedura trasparente per lo sviluppatore. GitLab, Bitbucket e altri repository pubblici permettono di specificare web hooks, cioè url da richiamare al completamento di operazioni specifiche, che tramite chiamate alle API ottengono lo stesso risultato.

Packagist incoraggia l'utilizzo di queste modalità push per alleggerire il carico di lavoro istantaneo sul crawler: i progetti per cui è stata effettuata la richiesta di aggiornamento in questa maniera vengono interrogati una volta al mese come failover in caso di eventuali disfunzioni del servizio.

La ricerca dei pacchetti

Composer permette la ricerca dei pacchetti direttamente da linea di comando. La sintassi è molto semplice e consiste nell'utilizzo del comando search seguito da uno o più termini da cercare in questa maniera:

composer search termine1 termine2

Specificando l'opzione --only-name è possibile limitare il controllo della presenza dei termini al solo nome del pacchetto. Questa funzionalità consente di semplificare il lavoro dello sviluppatore che vuole aggiungere un pacchetto da linea di comando ma non ricorda il nome eliminando la necessità di aprire un browser.

Benché la ricerca da linea di comando sia totalmente funzionante questa può risultare scomoda, quindi è possibile effettuare le stesse operazioni dall'interfaccia grafica di Packagist. Per quanto riguarda la ricerca pura viene controllata la presenza dei termini desiderati all'interno della descrizione, del nome del pacchetto o delle parole chiave.

Il sistema permette di ordinare i risultati in base al numero di installazioni o al numero di segnalazioni come pacchetti preferiti. Entrambe le possibilità rappresentano un buon criterio per la scelta di una libreria da utilizzare per una certa funzionalità, questo perché le librerie più popolari sono in genere quelle più mantenute o con uno sviluppo attivo.

Ti consigliamo anche