Wat is Composer en hoe werkt dependency management?
Composer is dé dependency manager voor PHP, gecreëerd door Nils Adermann en Jordi Boggiano. Maar hoe werkt het precies?
Het probleem
Voor Composer was het beheren van libraries en third-party code in PHP-projecten een handmatig en foutgevoelig proces. Pears, handmatige downloads en ingewikkelde class loading waren aan de orde van de dag.
De oplossing
Composer loste dit op door project-specifieke dependencies te beheren via een composer.json bestand. In combinatie met Packagist (de primaire package repository voor PHP), konden ontwikkelaars ineens eenvoudig externe libraries, componenten en frameworks in hun project trekken.
Een typisch composer.json bestand ziet er zo uit:
{
"require": {
"monolog/monolog": "^3.0",
"guzzlehttp/guzzle": "^7.8"
}
}
Autoloading
Een van de krachtigste features van Composer is de autoloader. Door eenvoudigweg require 'vendor/autoload.php'; toe te voegen aan je kernel/frontcontroller, worden alle geïnstalleerde classes, en ook je eigen classes (indien geconfigureerd via PSR-4), automatisch ingeladen op het moment dat ze nodig zijn.