Composer gebruiken via SSH: PHP dependency beheer
Composer gebruiken via SSH: PHP dependency beheer
Composer is de standaard package manager voor PHP. Het maakt het installeren van libraries en frameworks een fluitje van een cent. Bij Theory7 ondersteunen we Composer op al onze hostingpakketten met SSH toegang. In deze handleiding leer je Composer effectief gebruiken voor je PHP projecten.
Wat is Composer?
Composer beheert dependencies voor PHP projecten. In plaats van libraries handmatig te downloaden en bijwerken, laat je Composer dit automatisch doen. Voordelen:
- Automatische updates van dependencies
- Dependency resolution - conflicten worden automatisch opgelost
- Autoloading - classes worden automatisch geladen
- Versiebeheer - exacte versies vastleggen
Populaire tools die Composer gebruiken: Laravel, Symfony, WordPress plugins, PHPUnit.
Composer beschikbaarheid checken
Op Theory7 servers is Composer meestal al geinstalleerd. Check met:
composer --version
Als Composer niet gevonden wordt:
which composer
Of probeer het volledige pad:
/usr/local/bin/composer --version
Basis Composer commandos
Nieuw project starten
Voor een nieuw project met composer.json:
composer init
Of installeer direct een framework:
composer create-project laravel/laravel mijnproject
Dependencies installeren
Als je een project kloont met bestaande composer.json:
composer install
Dit installeert alle dependencies gespecificeerd in composer.lock.
Nieuwe package toevoegen
composer require vendor/package
Voorbeeld:
composer require monolog/monolog
composer require guzzlehttp/guzzle
Development dependencies
Voor packages alleen nodig tijdens development:
composer require --dev phpunit/phpunit
Package verwijderen
composer remove vendor/package
Alles updaten
composer update
Of specifieke package:
composer update vendor/package
Composer voor productie
Geoptimaliseerde installatie
Voor productieservers:
composer install --no-dev --optimize-autoloader
Wat deze flags doen:
- --no-dev - Skip development dependencies
- --optimize-autoloader - Genereer geoptimaliseerde class map
Autoloader optimalisatie
Na deployment:
composer dump-autoload --optimize
Dit versnelt het laden van classes aanzienlijk.
Composer.json structuur
Een basis composer.json:
{
"name": "mijnbedrijf/mijnproject",
"description": "Mijn PHP project",
"require": {
"php": ">=8.1",
"monolog/monolog": "^3.0"
},
"require-dev": {
"phpunit/phpunit": "^10.0"
},
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
}
Versie constraints
- ^3.0 - Compatibel met 3.0 en hoger, maar niet 4.0
- ~3.0 - Minimaal 3.0, maximaal 3.x
- 3.0.* - Elke 3.0.x versie
- >=3.0 - 3.0 of hoger
- 3.0.5 - Exact deze versie
Composer.lock
Composer.lock legt exacte versies vast. Dit zorgt dat iedereen dezelfde versies gebruikt.
Belangrijk:
- Commit composer.lock naar version control
- Gebruik composer install (niet update) op productie
- composer update alleen lokaal voor bewuste updates
Troubleshooting
Memory limit errors
COMPOSER_MEMORY_LIMIT=-1 composer install
Of pas php.ini aan:
php -d memory_limit=-1 /usr/local/bin/composer install
Timeout bij installatie
composer config --global process-timeout 600
Cache problemen
Clear de Composer cache:
composer clear-cache
Platform requirements
Als je lokale PHP versie verschilt van productie:
{
"config": {
"platform": {
"php": "8.1"
}
}
}
Composer met shared hosting
Op shared hosting met beperkte resources:
- Installeer dependencies lokaal
- Upload vendor/ map naar server
- Of gebruik composer met memory limit override
Composer scripts
Automatiseer taken met scripts in composer.json:
{
"scripts": {
"post-install-cmd": [
"php artisan optimize"
],
"test": "phpunit"
}
}
Run met:
composer test
Private packages
Voor private repositories:
{
"repositories": [
{
"type": "vcs",
"url": "git@github.com:mijnbedrijf/privaat-package.git"
}
]
}
Zorg dat SSH keys correct zijn geconfigureerd.
Gerelateerde artikelen
- SSH verbinden vanuit Mac/Linux
- Firewall configuratie (UFW)
- Server backup strategie
- PHP-FPM configuratie
Hulp nodig?
We staan voor je klaar! Loop je ergens tegenaan of heb je vragen? Ons supportteam helpt je graag persoonlijk verder. Stuur ons een berichtje via het ticketsysteem - we reageren meestal binnen een paar uur en denken graag met je mee.
0 van 0 vonden dit nuttig