Composer 2

Marcus Olsson,

För över 8 år sedan så släpptes först versionen av Composer – redo att användas med PHP 5.4 som faktiskt släpptes samma dag. Sedan dess har det blivit den självklara metoden att hantera dependancies i ens projekt och blivit en viktig pelare i PHP-ekosystemet.

Composer har alltid varit intressant med riktigt bra features, bl.a. sina väldigt strikta lock-filer, till skillnad från t.ex. NPM som historiskt har hanterat dessa på väldigt knepiga vis. Det som du har i composer.lock är det du får vid en composer install.

Men nu närmar sig alltså Composer 2 som bör släppas inom kort. Vad som är riktigt intressant här är att denna stora uppdateringen främst riktar in sig på att förbättra prestandan (hurra!) och göra installationsprocessen mer förutsägbar för användaren.

PHP 5.3.9 och uppåt kommer att stödjas precis som tidigare – och faktum är att användaren i de allra flesta fallen inte kommer att märka några större skillnader emot tidigare versioner, mer än kanske snabbare installationer då Composer 2 kommer att tillåta parallella nedladdningar.

Men, paket och filer som inte följer någon PSR-standard (0 eller 4) för autoloading kommer att uteslutas framöver. Något man har fått en varning för sedan composer 1.10:

Deprecation Notice: Class MyClass located in ./vendor/olssonm/sillypackage/TestClass.php does not comply with psr-0 autoloading standard. It will not autoload anymore in Composer v2.0.

Detta kan man dock, om man måste, komma runt i många fall med classmaps (dokumentation).

php.watch har skrivit en bra primer på skillnader och nyheter i Composer 2, väl värt att spana in. Det går även att följa 2.0-milestone:n på Github.