PHP Composer dan Autoloading
Definisi
Composer adalah manajer dependency PHP. composer.json menyimpan paket & autoloading (PSR-4 memetakan namespace ke folder). composer dump-autoload membangun classmap agar new App\X otomatis temukan file.
Kapan dipakai
Wajib untuk project modern (Laravel, Symfony, library apa pun). Pakai untuk install paket, lock versi, dan menjalankan script (composer test, composer lint).
Cara kerja
composer.json
{
"require": { "php": ">=8.1", "guzzlehttp/guzzle": "^7.0" },
"autoload": {
"psr-4": { "App\\": "src/" }
},
"scripts": { "test": "phpunit" }
}composer install
composer dump-autoload
composer testPakai class
require 'vendor/autoload.php';
use App\Service\Payment;
new Payment(); // otomatis load src/Service/Payment.phpStruktur alur
Loading diagram...
Catatan implementasi
- PSR-4: namespace
App\→ foldersrc/; struktur folder harus cocok namespace. composer.lockmengunci versi persis — commit ke repo untuk reproducibility.composer install(production) vscomposer update(dev) — jangan update sembarangan di prod.- Untuk optimasi,
composer dump-autoload -o(classmap) lebih cepat di prod.
Kesalahan umum
- Folder tak cocok namespace: class not found; cek PSR-4 mapping.
- Lupa dump-autoload: class baru tak terload.
- Edit lock manual: bisa rusak; pakai
composer update. - require di tiap file: cukup sekali
vendor/autoload.php.