Composer til dine php projekter

Nu om dage kommer man ikke langt i et projekt, før man begynder at installere tredieparts pakker. Der er jo ingen grund til at genopfinde den dybe tallerken, hvis andre allerede har lavet en i god kvalitet, der bare virker. Her kommer Composer ind i billedet. Den holder styr på de pakker du har installeret og som dit projekt dermed er afhængig af.

 

Når du installerer noget med Composer, smider den pakkenavn og version i composer.json, og når du så skal installere dit projekt et andet sted, eller dele det med andre, kan en simpel install commando hente alle projektets afhængigheder. Smart.

OS på min udviklingsserver er FreeBSD, og det er derfor udgangspunktet her:

Installer Composer:

Installer eksisterende og nye pakke

Hvis du har et projekt med en composer.json fil, kan du nu blot hente alle afhængigheder til projektet med denne kommando:

Composer opretter en mappe der hedder vendor, og heri lægges alle de php pakker som hentes. Mappen placeres det sted du befinder dig, når du udfører install kommandoen.

Hvis du selv starter et projekt, kan du blot begynde at hente de værktøjer du skal bruge med composer:

Ovenstående kommando henter og tilføjer projektet til composer.json

Du kan også installere en bestemt version af en pakke:

Opdatering af pakker

Når du vil opdatere pakkerne, udfører du blot en update kommando

Du kan også nøjes med at opdatere en eller flere uden at opdatere alle:

Hvor er autoload.php?

Jeg har lige installeret phpseclib med Composer, men kunne ikke få den til at virke. Det viser sig at phpseclib benytter Composers egen autoloader som burde befinde sig i vendor mappen. Men den fil mangler jeg tilsyneladende. Efter lidt Googlen rundt, fandt jeg frem til denne kommando der genererer en autoload.php for dig: