Mengenal Composer
Composer adalah package manager PHP yang digunakan untuk mengatur, menambah, atau mengurangi komponen di dalam aplikasi yang sedang kita bangun.
Composer juga dapat digunakan sebagai autoload, yaitu cara memanggil file-file class sebelum class tersebut dipakai. Terdapat dua cara autoload dengan composer, yaitu menggunakan classmap dan PSR-4 Standard.
Instalasi composer bisa dilakukan dari https://getcomposer.org/download/. Cara instalasinya banyak tutorialnya di internet. Jika composer telah berhasil terinstall, akan muncul tulisan composer pada terminal saat diberikan perintah composer.
Composer Autoload dengan Classmap
Dari file index.php tutorial sebelumnya, kita menggunakan perintah require. Kita akan memindahkan pemanggilan file tersebut ke composer.json. File composer.json adalah file konfigurasi composer berisi daftar paket/file yang perlu diinstall ke aplikasi. Untuk melakukan autoload dengan classmap, buat file composer.json yang sejajar dengan index.php :
1 2 3 4 5 6 7 8 9 10 |
{ "autoload": { "classmap":[ "src/Calculator.php", "src/Mobil/Mobil.php", "src/Mobil/Toyota.php", "src/Mobil/Honda.php" ] } } |
Selanjutnya buka terminal dan masuk ke folder di atas src, dan ketik composer install. Jika berhasil, akan muncul folder vendor yang berisi file autoload.php. Sekarang kita ganti index.php menjadi :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php require "vendor/autoload.php"; use Dummy\Calculator; use Dummy\Mobil\Toyota as Fortuner; use Dummy\Mobil\Honda as Crv; $toyota = new Fortuner('Toyota Fortuner',10); $calculator = new Calculator($toyota); echo "Jarak Maksimum ". $toyota->getMerk() . " adalah " . $calculator->hitungJarak() . " km. <br>"; $honda = new Crv('Honda CR-V',10); $calculator = new Calculator($honda); echo "Jarak Maksimum ". $honda->getMerk() . " adalah " . $calculator->hitungJarak() . " km. <br>"; |
Hasilnya akan sama dengan tutorial sebelumnya.
Autoload dengan PSR-4
Jika jumlah file sedikit, penggunaan classmap tidak ada masalah. Tetapi yang menjadi masalah jika jumlah classnya banyak. Karena itu digunakan PHP Standard PSR-4. Harus dipastikan nama file dengan nama class di dalamnya sama. Dengan PSR-4, kita cukup melakukan sedikit konfigurasi dan semua class yang perlu dipanggil akan ditangani sendiri oleh composer.
Ubah composer.json menjadi :
1 2 3 4 5 6 7 |
{ "autoload": { "psr-4": { "Dummy\\" : "src" } } } |
Yang mengarahkan namespace Dummy ke folder src. Tidak ada perubahan pada index.php, hasilnya juga akan sama.