Ringkasan dokumen tersebut membahas tentang penggunaan Composer sebagai dependency manager untuk PHP. Composer dapat menginstal, memperbarui, dan menghapus package PHP secara otomatis, serta mengelola dependensi antar package untuk memastikan konsistensi versi package yang digunakan. Dengan Composer, pengembang dapat lebih mudah mengintegrasikan library eksternal ke dalam proyek PHP mereka.
6. Masalah utama pada “spaghetti
code”
● Tidak ada modularitas.
● Kurangnya peng-organisasi-an kode
● Tidak ada pembagian antara fungsi dan
tujuan.
● Tidak memungkinan penggunaan ulang
(mengandalkan Copy-Pasta!).
● Sulit untuk di-verifikasi
14. Composer adalah Depedency
Manager untuk PHP
● Composer bisa menginstall package yang
dibutuhkan
● Composer bisa mengupdate package yang
memiliki release terbaru
● Composer bisa menghapus package yang
sudah tidak diperlukan
15. Composer menggunakan SAT solver
● Semua package pertama-tama di kumpulkan
dalam “pool”
● Depedency antar package diterjemahkan
menjadi boolean.
16. Depedency resolusi dengan SAT
solver
● Install B (versi 1 atau 2) -> (B1|B2)
● A require B (versi 1 atau 2) -> (-A|B1|B2)
● A conflict B (versi 1 atau 2)-> (-A|-B1), (-A|-B2)
● C dan D provide E -> (-E|C|D)
● B2 update B1 -> (-B1|-B2)
Contoh kasus :
(-A|B1|B2) (-B2|C) (A) (-B1|-B2) (-A|-C)
SAT solver akan mengevaluasi boolean untuk A, B1, B2
dan C sehingga semua kondisi menjadi TRUE. Jika nilai
akhirnya TRUE, dia akan diinstall.
23. Peran lain Composer
● Memungkinkan kita me-reproduksi
“environment” aplikasi yang sama di semua
mesin yang kita pakai
● Memungkinkan kita melakukan automatisasi
dalam lifecycle development
24. composer.lock = Tidak ada lagi
coding drama!
● Semua developer dalam team bekerja
dengan versi package yang sama.
● Semua mesin (target deploy) menggunakan
versi package yang sama.
● Tidak ada developer yang menggunakan
versi yang belum kita verifikasi
25. Composer Hook = Automate more!
● pre-install-cmd
● post-install-cmd
● pre-update-cmd
● post-update-cmd
● post-create-project-cmd
● … dan banyak lagi
26. Statistik seputar Composer
● 7 release (sejak 2011)
● 244 contributor
● 16.586 packages yang tersedia di packagist
● 55.071 versi yang tersedia di packagist
● 68.718 940 total instalasi package di
packagist