Jika kamu sudah malang melintang di dunia PHP, apalagi kamu mulai belajar laravel, kamu pasti sering mendengar istilah Composer
. Lalu jika kamu mulai bertanya-tanya apa sih sebenarnya Composer itu? Mengapa banyak framework dan library PHP menggunakannya? Mengapa banyak programmer menyarankannya? Maka artikel ini cocok untuk kamu. Di sini akan dibahas beberapa poin tentang pengertian composer, kenapa harus composer, siapa yang mengembangkannya, dan status keresmiannya.
Kenapa Harus Composer?
Karena Composer membuat sebagian hidup kita menjadi lebih sederhana. Sebagai programmer PHP, kita tidak mungkin membuat semua fitur web kita dari awal. Seperti contoh: fitur mengirim email, fitur import excel, export dokumen word, login via sosial media. Semua itu terlalu memakan waktu jika kita harus membuatnya sendiri dari awal. Lagi pula, kalau buat sendiri, belum tentu bisa kan?
Solusinya adalah menggunakan pustaka yang telah dibuat oleh orang lain. Seperti menggunakan PHPMailer untuk mengirim email, menggunakan Facebook SDK untuk login via facebook. Menggunakan PHPSpreadsheet untuk mengimpor data dari excel ke database.
Jika anda klik semua library yang saya sebutkan sebelumnya, lalu anda baca cara installnya, anda akan mendapati semua library tersebut memanfaatkan Composer untuk proses instalasi.
Sampai sini, harusnya pertanyaan “kenapa harus composer” sudah terjawab.
Apa itu Composer?
Composer adalah package-manager (di level aplikasi) untuk bahasa pemrogaman PHP. Menawarkan standarisasi cara pengelolaan libraries dan software dependencies dalam projek PHP [1]. Composer memungkinkan kita mendefiniskan pustaka atau library apa saja yang projek kita butuhkan, untuk kemudian Composer lah yang akan menangani proses instalasi dan penyiapan pustaka-pustaka tersebut untuk kita gunakan [2].
Siapa Yang Mengembangkan Composer?
Composer dikembangkan pertama kali oleh Nils Adermann dan juga partnernya Jordi Boggiano. Dan semenjak dirilis pertama kali pada tanggal 1 Maret 2012 [3], pengembangan Composer terus berlanjut dan mulai banyak orang yang ikut berkontribusi (lihat kontributor composer yang lain).
Composer bukan lah sebuah ide baru. Ia sebenarnya sangat terinspirasi dari NPM pada Node JS, dan Bundler pada Ruby [4].
Apakah Composer itu Resmi?
Saya berusaha mencari rujukan tentang ini di internet. Apakah Composer itu resmi dari komunitas pengembang PHP itu sendiri? Atau kah ia hanyalah pustaka pihak ketiga yang tidak secara langsung berhubungan dengan pengembangan bahasa pemrograman PHP?
Saya tidak menemukan satu pun literasi yang mengatakan secara jelas tentang keresmian Composer. Akan tetapi saya berkesimpulan bahwa Composer bukan lah dependency manager resmi dari PHP. Kesimpulan itu berdasarkan beberapa faktor berikut:
- Tidak disebutkan nama Pengembang asli composer di halaman Credit PHP yang berisikan daftar besar para pengembang PHP
- Kode sumber Composer yang tidak di berada pada satu akun atau satu organisasi di github.com/php
- Dana yang didapatkan dari membuat akun private pada packagist dialirkan ke pengembangan Composer dan Packagist itu sendiri [[4]].
- Adanya error akibat breaking change yang disebabkan munculnya PHP versi baru: lihat issue ini di github sebagai contoh.
- Laman PHP The Right Way mengatakan bahwasanya composer adalah dependency manager yang direkomendasikan untuk digunakan [5].
Meskipun begitu, di beberapa dokumentasi resmi di situs php.net, dimuat penggunaan composer untuk tutorial beberapa pustaka seperti misalnya php mongodb. Di dalam dokumen tersebut dimuat cara untuk menginstall mongodb menggunakan composer.
Sehingga meskipun composer bukan dependency manager resmi, tetap saja ia satu-satunya yang paling direkomendasikan untuk digunakan. Sekarang sudah tahun 2020 dan aneh sekali jika masih ada seseorang yang menggunakan cara tradisional dalam memanajemen pustaka-pustaka projeknya.
Bagaimana Cara Menggunakannya?
Cara menggunakan Composer hampir sama dengan dependency manager bahasa pemrograman lain semisal npm
. Yang pertama kali kita lakukan adalah menginstall PHP. Lalu menginstall composer.
Install Composer di Arch Linux
Bagi pengguna arch linux, cara install composer sangat mudah. Anda bisa langsung install lewat package manager pacman
.
sudo pacman -S composer
Install Composer di Debian/Ubuntu
Untuk pengguna Debian dan Ubuntu flavor, anda bisa melakukan perintah di bawah:
curl -s https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
Perintah pertama di atas adalah untuk mengunduh installer composer, lalu hasil script installer tersebut langsung di bypass ke program php
. Kemudian php
akan mendownload file bernama composer.phar
.
Sedangkan perintah kedua di atas gunanya adalah untuk memindahkan file composer.phar
dari direktori aktif menuju direktori /usr/local/bin/
dengan nama file composer
. Hal itu memungkinkan kita untuk memanggil composer
dari direktori mana pun.
composer
Mendownload Package dengan Composer
Penggunaan composer paling dasar adalah untuk mengunduh pustaka PHP tertentu. Lalu kita bisa langsung menggunakan pustaka tersebut hanya dengan me-require
satu file saja.
Katakanlah kita akan memasang pustaka Facebook SDK, maka yang kita lakukan adalah mengeksekusi perintah berikut di dalam direktori projek kita:
composer require facebook/graph-sdk
Composer akan otomatis membuat file composer.json
jika belum ada. Dan mengunduh pustaka facebook/graph-sdk
ke dalam direktori vendor
.
Jika kita buka file composer.json
, kita akan mendapati isinya sebagai berikut:
{
"require": {
"facebook/graph-sdk": "^5.7"
}
}
Karena kita tadi tidak mendefinisikan versi pustaka yang kita unduh, maka composer akan mengunduh versi stable terbaru yaitu versi ^5.7
saat tulisan ini dibuat.
Menggunakan Package yang sudah di-download
Untuk menggunakan pustaka yang sudah kita install menggunakan composer, kita hanya perlu me-require satu file saja yaitu /vendor/autoload.php
.
Seperti ini contohnya:
<?php
// misalkan ini adalah file index.php
require_once __DIR__ . '/vendor/autoload.php';
$fb = new \Facebook\Facebook([
'app_id' => '{app-id}',
'app_secret' => '{app-secret}',
'default_graph_version' => 'v2.10',
//'default_access_token' => '{access-token}', // optional
]);
Kesimpulan
Composer adalah package-manager (di level aplikasi) untuk bahasa pemrogaman PHP. Menawarkan standarisasi cara pengelolaan libraries dan software dependencies dalam projek PHP. Dengan Composer kita tidak perlu repot-repot lagi mendownload source code pustaka yang kita butuhkan secara manual, lalu memasangnya di aplikasi kita, lalu mengupdate-nya secara manual jika ada versi baru. Itu semua tidak perlu lagi karena Composer bisa menangani semua proses tersebut dengan mudah.
Referensi
[1] https://en.wikipedia.org/wiki/Composer_(software) - diakses tanggal 18 Januari 2020
[2] https://getcomposer.org/doc/00-intro.md - diakses tanggal 18 Januari 2020
[3] https://github.com/composer/composer/releases/tag/1.0.0-alpha1 - diakses tanggal 18 Januari 2020
[4] https://packagist.org/about - diakses tanggal 18 Januari 2020
[5] https://phptherightway.com/#composer_and_packagist - diakses tanggal 19 Januari 2020