Perintah-perintah Composer: create-project
Pada materi sebelumnya
kita sudah bahas perintah Composer, yaitu : require
, kali ini kita akan bahas tentang perintah “composer create-project”.
composer create-project
Perintah ini digunakan untuk membuat sebuah project baru dengan menggunakan source code paket yang kita panggil.
Jadi struktur perintahnya:
composer create-project “nama-paket” “nama-folder” “versi-paket”
Contoh perintah :
composer create-project nesbot/carbon project-saya 1.20.0
Makna perintah :
“Composer, tolong buatkan saya project baru dalam folder project-saya
dengan menggunakan source code dari paket nesbot/carbon
versi 1.20.0
”
Pada dasarnya pada perintah ini, Composer melakukan clone source code dari repository paket yang bersangkutan (dari github), dan meng-install seluruh dependensi dari paket tersebut. Sebagai contoh kita ingin membuat project menggunakan source code dari paket nesbot/carbon
.
Jika perintah tersebut dieksekusi, maka akan tampil proses seperti gambar ini:
Nah dari gambar tersebut kita lihat perbedaan yang signifikan antara perintah require
dengan create-project
.
Ternyata dependency paket yang di-download oleh Composer lebih banyak.
Pada perintah ini:
- Composer membuat sebuah folder
project-saya
- Composer meng-install/men-download source code paket
nesbot/carbon
ke dalam folderproject-saya
- Composer men-download seluruh dependency dari paket
- Composer juga men-download seluruh dependency dari paket yang digunakan saat source code ini dibuat, dalam kasus ini adalah paket “phpunit/phpunit”.
Jika kita tengok di halaman packagist, bisa di lihat pada bagian require-dev
di sana kelihatan paket phpunit/phpunit
yang menjadi dependency untuk kebutuhan development paket nesbot/carbon
hmm… oke, Jadi dari sini kita bisa melihat bahwa perintah create-project
berguna jika kita ingin
menggunakan source code paket sebagai starting point dari project yang akan kita garap.
Umumnya perintah create-project
ini kita gunakan untuk membuat project dari sebuah framework.
Misalkan : symfony, codeigniter, laravel, dan slim.