Apa itu Composer? Dan Kenapa Harus Composer?

Ibnu Jakaria 21 Januari 2016

Apa itu Composer? Dan Kenapa Harus Composer?

Dalam beberapa tahun belakangan, terjadi perubahan yang sangat signifikan dalam dunia pemrograman php. Yakni munculnya dependencies manager yang bernama composer. Composer adalah sebuah project open source yang dimotori oleh Nils Adermann dan Jordi Boggiano. Project composer ini dihost di github (https://github.com/composer/composer) tercatat sejak tanggal 3 April 2011 dan masih aktif sampai sekarang.

Kehadiran composer membuat ngoding php jadi lebih terstruktur dan lebih rapi. Banyak programmer terbiasa dengan bahasa pemrograman yang terstruktur, ketika pindah ke php, menemukan banyak hal yang rancu. Terutama dalam memanajemen struktur hirarki project. Sehingga membutuhkan usaha lebih untuk menerapkan konsep OOP yang baik dalam php.

Hal ini bisa terjadi karena –seperti yang kita tahu– , bahwa dalam bahasa pemrograman php, pada setiap kali request, maka hanya ada satu file php saja yang dieksekusi. Hanya satu file saja. Dan jika kita ingin mengakses file lain yang terpisah seperti misalkan memanggil function di file lain atau membuat instan dari kelas yang filenya terpisah, maka kita perlu meng-include atau require file yang bersangkutan sehingga seolah-olah file yang terpisah tadi jadi satu dengan file yang request user sedang mengarah kepadanya. Dengan composer dan autoload-nya serta namespace, kita bisa bebas mengakses file-file php tanpa harus ribet meng-include atau me-require semua file atau class yang kita butuhkan, autoload dari composer sudah melakukan semua itu out of the box. Sehingga oop dalam php benar-benar makes sense.

Selain autoload, composer –sebagai dependencies atau package manager– juga menyelesaikan permasalahan dependencies dalam project kita. Semisal, kita membutuhkan suatu package atau library A. Jika kita menggunakan cara konvensional, maka kita perlu mendownload package A dan meletakkannya dalam project kita, lalu untuk mengakses library tersebut, kita perlu melakukan include atau require terhadap file-file dari library A. Sekilas memang terlihat simpel, tapi, bagaimana jika library A ternyata membutuhkan library lain –katakanlah library B–, lantas library B juga membutuhkan library C? Kita bisa pusing sendiri. Belum lagi soal versi? Library A versi sekian membutuhkan library B versi sekian, dan library B versi sekian membutuhkan library C versi sekian. Kita benar-benar akan mendapatkan masalah yang rumit jika tidak jeli dalam mengantur dependencies dalam project kita. Dan kabar baiknya, composer hadir untuk menyederhanakan masalah tersebut! Kita cukup memasang library A dengan composer, maka semua library yang dibutuhkan oleh library A akan otomatis dipasang juga oleh composer. Dan kita juga tidak perlu repot-repot merequire atau meng-include file library satu per satu.

Untuk repository sendiri, composer menggunakan packagist. Di mana terdapat ribuan package dan libraries php di packagist yang kita bisa langsung gunakan hanya dengan composer. Dan terhitung sejak bulan September 2011 hingga hari ini, terdapat lebih dari 83K packages dan  lebih dari 414K versions  packages yang dihost di packagist (data bisa dilihat di → https://packagist.org/statistics). Ini artinya, dengan composer, kita memiliki akses yang luas dan mudah untuk mendapatkan banyak package. Tentunya ini bisa meningkatkan tingkat keproduktifitasan kita serta meningkatkan efektifitas kerja. Bukankah itu menarik?

Jadi..

Masih tidak mau menggunakan composer?

Sumber: https://packagist.org/ https://packagist.org/statistics https://getcomposer.org/doc/ https://github.com/composer/composer http://blog.jgrossi.com/2013/why-you-should-use-composer-and-how-to-start-using-it/