Laravel met Composer via SSH: packages beheren
Composer is de standaard package manager voor PHP en onmisbaar voor elk Laravel project. Via SSH kun je Composer commando's direct uitvoeren op je hosting om packages te installeren, updaten en beheren. In deze handleiding leer je alles over het effectief gebruik van Composer via SSH voor je Laravel applicaties.
Wat is Composer en waarom heb je het nodig?
Composer is een dependency manager die automatisch alle benodigde PHP libraries voor je project beheert. Het houdt bij welke packages je nodig hebt en installeert deze in de juiste versies. Laravel zelf wordt ook via Composer geïnstalleerd en bijgewerkt. Dit maakt Composer een essentieel hulpmiddel voor elke Laravel ontwikkelaar.
De belangrijkste voordelen van Composer:
- Automatisch beheer van al je project dependencies, wat betekent dat je je geen zorgen hoeft te maken over het handmatig bijhouden van versies.
- Versiecontrole zodat packages compatibel blijven, waardoor je project stabieler en betrouwbaarder wordt.
- Eenvoudig updaten van bibliotheken met een commando, wat je tijd en moeite bespaart.
- Autoloading van PHP classes zonder handmatige includes, wat je code schoner en gemakkelijker te onderhouden maakt.
- Toegang tot duizenden packages via Packagist.org, waardoor je snel functionaliteit kunt toevoegen aan je project.
SSH toegang activeren voor je hosting
Voordat je Composer kunt gebruiken, heb je SSH toegang nodig. Bij Theory7 activeer je dit eenvoudig via DirectAdmin onder de SSH opties. Na activatie verbind je met een SSH client. Dit is een cruciale stap, omdat SSH je in staat stelt om veilig en efficiënt commando's op je server uit te voeren.
Op Windows gebruik je PuTTY, op Mac of Linux de ingebouwde Terminal:
ssh gebruikersnaam@jouwdomein.nl
Vergeet niet je gebruikersnaam en domeinnaam aan te passen. Eenmaal verbonden, heb je toegang tot de commandoregel van je server, waar je Composer kunt gebruiken.
Composer beschikbaarheid checken
Op Theory7 hosting is Composer meestal al geïnstalleerd. Controleer dit met:
composer --version
Je ziet dan de geïnstalleerde versie. Is Composer niet beschikbaar, installeer het dan lokaal in je home directory. Dit kan meestal door een paar eenvoudige commando's uit te voeren, afhankelijk van je serverconfiguratie.
Essentiële Composer commando's voor Laravel
Dependencies installeren
Na het clonen van een Laravel project installeer je alle packages:
composer install
Voor productieomgevingen gebruik je extra flags voor betere performance:
composer install --no-dev --optimize-autoloader
Het gebruik van de --no-dev flag zorgt ervoor dat alleen de noodzakelijke packages voor productie worden geïnstalleerd, wat de laadtijd van je applicatie kan verbeteren.
Nieuwe packages toevoegen
Voeg een package toe aan je project:
composer require vendor/package-naam
Bijvoorbeeld, als je laravel/sanctum wilt toevoegen voor API-authenticatie, gebruik je:
composer require laravel/sanctum
Packages updaten
Update alle packages naar de nieuwste compatibele versies:
composer update
Dit commando is handig om ervoor te zorgen dat je altijd de laatste beveiligingsupdates en features hebt. Houd er echter rekening mee dat dit ook kan leiden tot compatibiliteitsproblemen, dus test je applicatie altijd na een update.
Autoloader regenereren
Na handmatige wijzigingen in je classmap:
composer dump-autoload
Dit is vooral nuttig als je nieuwe classes hebt toegevoegd of bestaande classes hebt verplaatst.
Populaire Laravel packages
Enkele veelgebruikte packages die je via Composer installeert:
- laravel/sanctum - API authenticatie tokens, ideaal voor SPA's en mobiele applicaties.
- spatie/laravel-permission - Rollen en permissies systeem, wat je helpt om gebruikersrechten effectief te beheren.
- intervention/image - Afbeeldingen bewerken en resizen, een must-have voor elke applicatie die met media werkt.
- barryvdh/laravel-debugbar - Debug informatie tijdens development, wat je helpt om problemen snel op te sporen.
- laravel/horizon - Queue monitoring dashboard, ideaal voor het beheren van je achtergrondtaken.
Veelvoorkomende problemen oplossen
Memory limit errors
Bij grote projecten kan Composer tegen geheugenlimieten aanlopen. Verhoog tijdelijk het limiet:
COMPOSER_MEMORY_LIMIT=-1 composer install
Dit commando stelt het geheugenlimiet in op onbeperkt, wat nuttig kan zijn voor grote installaties of updates.
Timeout bij grote packages
Verhoog de timeout voor langzame downloads:
composer config --global process-timeout 600
Dit kan helpen als je werkt met een trage internetverbinding of als de server traag reageert.
Cache problemen
Leeg de Composer cache bij vreemde fouten:
composer clear-cache
Dit kan helpen om problemen op te lossen die voortkomen uit verouderde of corrupte cachebestanden.
Best practices voor Composer
- Commit altijd
composer.locknaar je Git repository. Dit zorgt ervoor dat iedereen in je team dezelfde versies gebruikt, wat compatibiliteitsproblemen voorkomt. - Gebruik
installop productie, nooitupdate. Dit voorkomt onverwachte breuken door nieuwe versies. - Check regelmatig op updates met
composer outdated. Dit helpt je om je project up-to-date te houden. - Specificeer versie constraints in
composer.json. Dit zorgt ervoor dat je niet per ongeluk naar een onverenigbare versie upgrade. - Gebruik
--no-devflag op productieservers. Dit vermindert de belasting en verhoogt de veiligheid.
Composer.json versus composer.lock
Het verschil tussen deze twee bestanden is belangrijk:
- composer.json - Definieert welke packages je wilt en welke versie ranges acceptabel zijn. Dit bestand is de basis voor je projectconfiguratie.
- composer.lock - Bevat de exacte versies die geïnstalleerd zijn. Dit bestand zorgt ervoor dat je project consistent blijft, ongeacht waar het wordt geïnstalleerd.
Door composer.lock te committen, weet je zeker dat iedereen in je team dezelfde versies gebruikt, wat cruciaal is voor samenwerking en projectconsistentie.
Met deze kennis beheer je efficiënt alle packages voor je Laravel projecten via SSH. Hulp nodig bij je Laravel hosting? Het team van Theory7 staat voor je klaar om je te ondersteunen bij al je vragen en uitdagingen.
0 van 0 vonden dit nuttig