Vid utveckling av mjukvara, oavsett om projektet är av enklare eller mer komplex karaktär, är det närmast oundvikligt att programmet kommer att förlita sig på externa bibliotek, moduler eller komponenter för att fungera korrekt. Dessa externa resurser som krävs för att mjukvaran ska fungera kallas beroenden.
En effektiv hantering av beroenden är en nyckelprocess i alla projekt. Som tur är finns det en mängd verktyg designade för att automatisera beroendehantering och underlätta arbetet för utvecklare. Valet av beroendehanteringsverktyg kommer att påverkas av det programmeringsspråk och ekosystem du arbetar med.
Om du arbetar med PHP-projekt, behöver du inte söka längre än till Composer för att sköta dina projektberoenden.
Vad är Composer?
Composer är ett populärt verktyg som är specialdesignat för att hantera beroenden i PHP-projekt. Starkt inspirerat av npm i Node och Bundler i Ruby, låter Composer dig deklarera vilka externa bibliotek ditt PHP-projekt är beroende av, och det kommer att sköta hanteringen av dessa åt dig.
Detta innebär att Composer kommer att installera alla nödvändiga beroenden för ditt projekt och även hålla dem uppdaterade.
Det är också viktigt att förstå att Composer inte är en pakethanterare som Apt eller Yum. Även om det handlar om bibliotek, installeras dessa inte globalt på datorn som standard. Istället hanterar Composer beroenden per projekt och installerar dem lokalt i en mapp inuti det PHP-projekt du utvecklar.
Composer ger dig även möjligheten att undersöka vilka versioner av vilka paket som kan och behöver installeras i ditt projekt och installerar dem åt dig. Verktyget erbjuder dessutom ett enda kommando som du kan använda för att uppdatera alla beroenden i ditt projekt.
Composer är ett avgörande verktyg för alla som arbetar med PHP-utveckling. Det möjliggör en effektiv beroendehantering och tillhandahåller även ett arkiv kallat Packagist, som erbjuder ett stort utbud av PHP-paket och bibliotek som du kan inkludera som beroenden i dina projekt.
Korrekt hantering av beroenden med hjälp av ett verktyg som Composer leder till en modulär utveckling av mjukvara, smidig versionskontroll och ett förbättrat samarbete mellan team. Dessutom hjälper det till att undvika kompatibilitetsproblem och gör projekt mer underhållbara.
Låt oss nu titta på hur du installerar Composer på Ubuntu. Men först, låt oss gå igenom de förberedelser som krävs innan installationen.
Förutsättningar för att installera Composer i Ubuntu
Följande punkter bör vara uppfyllda för att installera Composer i Ubuntu:
1. Se till att du har tillgång till terminalen på din dator och kan utföra kommandon som root-användare.
2. PHP version 7.2.5 eller senare måste vara installerat på din maskin. Du kan kontrollera om du har PHP installerat, och vilken version det är, genom att öppna terminalen och köra kommandot:
php -version
Om PHP är installerat bör du få en utskrift som denna:
Om PHP inte är installerat kan du installera det genom att köra följande kommando:
sudo apt install php
3. Du behöver ett system för versionshantering. Git är ett utmärkt val för detta. Verifiera att Git är installerat genom att köra:
git --version
Om Git är installerat visas ett versionsnummer i utskriften:
Om Git inte är installerat kan du installera det med följande kommando:
sudo apt install git
4. Du behöver också en arkivhanterare installerad på datorn för att dekomprimera filer. För detta ändamål är tar tillräckligt. Kontrollera om tar är installerat genom att köra:
tar --version
Om du inte har tar installerat kan du installera det med kommandot:
sudo apt-get install tar
När ovanstående förutsättningar är uppfyllda, är du redo att installera Composer.
Hur man installerar Composer på Ubuntu
Vid installation av Composer kan du välja att installera det globalt eller lokalt i samband med en specifik PHP-installation. En global installation gör att du kan komma åt Composer från vilken katalog som helst på din maskin, till skillnad från en lokal installation.
Den rekommenderade metoden är att installera Composer globalt, och det är det vi kommer att göra.
För att installera Composer via terminalen i Ubuntu, kör du skripten som finns på Composer’s nedladdningssida.
Följ stegen nedan för att installera Composer globalt på Ubuntu:
1. Öppna terminalen och ladda ner Composers installationsprogram till den aktuella katalogen med följande kommando:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
2. Verifiera installationsprogrammet SHA-384 genom att köra kommandot:
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
SHA-384 är ett kryptografiskt hashvärde som används för att kontrollera integriteten hos Composer’s installationsprogram. Det är en säkerhetsåtgärd som garanterar att installationsprogrammet du laddat ner inte har manipulerats eller skadats.
Körandet av ovanstående kommando ska generera en utskrift som säger ”Installer verified”, som visas nedan. Fortsätt när du får en sådan utskrift som bekräftar att installationsprogrammet är säkert.
3. Starta installationsprogrammet genom att köra:
php composer-setup.php
Du ska då få en utskrift som bekräftar att Composer har installerats.
Observera att `composer.phar`, som är den körbara filen för Composer, nu ligger i den katalog där du installerade den.
4. Eftersom Composer är framgångsrikt installerat kan du ta bort det tidigare nedladdade installationsprogrammet eftersom det inte längre behövs. Det gör du genom att köra:
php -r "unlink('composer-setup.php');"
5. För att säkerställa att Composer är globalt installerat och kan anropas från vilken katalog som helst, ska du flytta `composer.phar`-filen till en katalog som finns i din PATH. Gör det med följande kommando (ange ditt lösenord när du blir ombedd):
sudo mv composer.phar /usr/local/bin/composer
6. Kontrollera att Composer har installerats korrekt genom att köra:
composer
Om Composer är framgångsrikt installerat, bör du se en utskrift som denna:
Hur man använder Composer
Efter installationen av Composer är nästa steg att använda det för att hantera beroenden. Som tidigare nämnts har Composer ett arkiv, Packagist, som erbjuder paket som kan installeras som beroenden med hjälp av Composer.
För att visa hur man använder Composer, kommer vi att installera ett paket som heter http-message, som är ett gränssnitt som beskriver HTTP-meddelanden.
Så här använder du Composer för att installera http-meddelande:
1. Skapa en ny mapp, kalla den `composerDemo`, och navigera in i den genom att köra följande kommandon i terminalen:
mkdir composerDemo
cd composerDemo
2. Skapa en `.gitignore`-fil i mappen genom att köra:
touch .gitignore
Denna fil används för att specificera vilka filer som inte ska spåras av Git.
3. Skapa en `composer.json`-fil för ditt projekt genom att köra:
composer init
En `composer.json` är en central konfigurationsfil som används av Composer. Här anger du metadata om ditt projekt och vilka beroenden det har, så att Composer automatiskt kan hantera dessa åt dig.
Ovanstående kommando kommer att leda till följande:
Guiden kommer att leda dig genom skapandet av `composer.json`-filen. Vid den första frågan, tryck på Enter för att acceptera det föreslagna projektnamnet.
4. Vid nästa uppmaning, ange en kort beskrivning av projektet och tryck på Enter. Du kan klistra in beskrivningen nedan och sedan trycka på Enter:
A demonstration of how to use PHP Composer
5. Nästa fråga ber dig om en författare. Tryck på Enter för att använda standardvärdet.
6. Därefter kommer du att bli ombedd att ange minimistabilitet. Lämna detta tomt genom att trycka på Enter för att gå vidare till nästa fråga.
7. Nästa fråga ber dig ange en pakettp. För det, välj `project` och tryck på Enter, som visas nedan:
8. När du blir ombedd att ange en licens, tryck på Enter för att lämna den tom och gå vidare.
9. Du kommer sedan att bli frågad om du vill specificera dina beroenden. För det, välj `yes` genom att trycka på Enter. Detta leder sedan till att du får söka efter ett paket.
10. I sökningen efter ett paket, ange `http-message` och tryck på Enter. Detta kommer att söka efter paketet och visa sökresultaten enligt nedan:
Paketet vi söker är det första, `psr/http-message`. För att välja det, ange dess nummer och tryck på Enter. Så ange `0` (noll) och tryck på Enter.
11. Nästa fråga handlar om att specificera versionsbegränsningen (eller lämna tomt för senaste versionen). Här behöver vi ange vilken version vi vill använda eller lämna tomt för den senaste versionen.
För att kontrollera senaste versionen av paketet, gå till dess sida på Packagist. Den senaste versionen är 2.0, som visas nedan:
Composer uppdaterar automatiskt paket när uppdateringar blir tillgängliga. Men du vill inte att den ska uppdateras till en version som inte är bakåtkompatibel med den du använder i ditt projekt, eftersom det kan leda till problem med koden. För att undvika detta, skriv in följande för att specificera versionen och tryck på Enter:
^2.0
Detta instruerar Composer att installera version 2.0 eller högre, så länge den högre versionen är bakåtkompatibel.
12. Du kommer då att bli tillfrågad om du vill söka efter ett annat paket. Tryck bara på Enter för att hoppa över denna och gå vidare.
13. När du blir tillfrågad om att definiera dev-beroenden, tryck på Enter. Vid frågan om att söka efter ett paket, tryck på Enter för att hoppa över, eftersom våra dev-beroenden kommer vara samma som våra live-beroenden.
14. Nästa fråga handlar om PSR-4 autoload mappning. Tryck på Enter för att hoppa över den.
15. Detta kommer att ge dig en förhandsvisning av `composer.json`-filen, som du just skapade. Den ska se ut som nedan:
Tryck på Enter för att bekräfta genereringen.
16. Nästa fråga ber dig om du vill installera beroendena du angett. Välj `yes` genom att trycka på Enter för att installera dem, som visas nedan:
17. Ange följande kommando i terminalen för att öppna projektet du just skapade i en kodredigerare:
code .
Resultatet visas nedan:
Observera att en `composer.json`-fil har skapats och våra beroenden anges under nyckeln `require`. De beroenden som installeras hamnar i en katalog som heter `vendor`.
18. För att undvika att spåra `vendor`-katalogen, som innehåller alla beroenden, öppna `.gitignore`-filen och klistra in följande rad:
/vendor/
Det rekommenderas att inte spåra den här filen eftersom den kan bli väldigt stor, och beroenden enkelt kan installeras automatiskt från `composer.json`-filen.
19. Efter att du skapat en `composer.json`-fil, kan du enkelt lägga till nya beroenden genom att redigera den `require`-sektionen i filen. Till exempel, för att lägga till ett paket som heter logg, lägg till det i det obligatoriska avsnittet enligt nedan:
"require": { "psr/http-message": "^2.0", "psr/log": "^3.0.0" },
20. För att installera det nya beroendet i ditt projekt, gå tillbaka till terminalen och kör:
composer update
Resultatet visas nedan:
Detta installerar paketet du nyligen lade till i `composer.json`-filen.
Nu är du redo att börja arbeta med dina PHP-projekt och använda Composer för att hantera beroenden i dina projekt.
Hur man optimerar Composer för bättre pakethantering
För att Composer ska fungera mer effektivt, se till att du anger versionsbegränsningar för beroenden på rätt sätt. Vi gjorde detta genom att ange ”^2.0”.
Undvik väldigt breda versionsbegränsningar, som “*”, vilket innebär att Composer kan installera vilken version som helst. Detta kan leda till kompatibilitets- och stabilitetsproblem i projektet, eftersom du inte kan veta vilken version Composer kommer att installera.
Undvik dessutom att lägga till för många egna skript i `composer.json`-filen. Lägg bara till de skript som är nödvändiga. För många skript leder ofta till ökad overhead vid beroendehantering.
För att öka hastigheten på Composer kan du aktivera PHP curl extension. Du kan också använda Composer-plugins, som till exempel hirak/prestissimo, som parallelliserar Composer-operationer och därigenom snabbar på installationen av paket.
Du kan även rensa Composer’s cache för att ta bort gamla och oanvända paket och optimera prestandan. Kom också ihåg att inte spåra och commit-a `vendor`-katalogen där paket installeras av Composer. Detta kommer att påskynda kloning och uppdatering av projektets repor.
Hur man avinstallerar Composer
Om du inte längre vill använda Composer i Ubuntu kan du avinstallera det genom att köra följande kommando:
sudo rm -rf /usr/local/bin/composer
Du kan bekräfta att Composer har avinstallerats genom att köra följande kommando:
composer
Om avinstallationen lyckades bör du få en sådan utskrift:
Slutsats
Beroendehantering är en avgörande process i alla projekt. En effektiv hantering säkerställer att du undviker kompatibilitetsproblem och skapar mer lättunderhållna projekt.
Dessutom möjliggör det en modulär mjukvaruutveckling och ett förbättrat samarbete mellan team. Om du utvecklar projekt i PHP, bör du överväga att använda Composer för att effektivt och enkelt hantera beroenden i ditt projekt.
Därefter kan du även läsa om vad Ubuntu PPA är och hur man installerar det.