Apa perbedaannya composer update
dan composer install
?
sumber
pembaruan komposer
composer update
akan memperbarui dependensi Anda sebagaimana ditentukan dalam composer.json
Misalnya, jika Anda memerlukan paket ini sebagai ketergantungan:
"mockery/mockery": "0.9.*",
dan Anda telah menginstal 0.9.1
versi paket, menjalankan composer update
akan menyebabkan peningkatan paket ini (misalnya 0.9.2
, jika sudah dirilis)
secara rinci composer update
akan:
composer.json
composer.json
composer.lock
untuk menyimpan versi paket yang diinstalpemasangan komposer
composer install
tidak akan memperbarui apa pun; itu hanya akan menginstal semua dependensi seperti yang ditentukan dalam composer.lock
file
Secara terperinci:
composer.lock
file ada (jika tidak, jalankan composer-update
dan buat itu)composer.lock
filecomposer.lock
fileKapan menginstal dan kapan memperbarui
composer update
sebagian besar digunakan dalam 'tahap pengembangan', untuk meningkatkan paket proyek kami sesuai dengan apa yang telah kami tentukan dalam composer.json
file,
composer install
terutama digunakan dalam 'tahap penggelaran' untuk menginstal aplikasi kami pada server produksi atau pada lingkungan pengujian, menggunakan dependensi yang sama yang disimpan dalam file composer.lock yang dibuat oleh pembaruan komposer.
composer global update
memperbarui dependensi dalam repositori global Anda pada sistem lokal (COMPOSER_HOME
variabel env)composer update
pada sistem lokal Anda dan menguji aplikasi Anda, kemudian mengunggah komposer. Buka server produksi Anda dan jalankancomposer install
Ketika Anda menjalankannya
composer install
akan mencari file kunci dan menginstal apa pun yang terkandung di dalamnya, jika tidak dapat menemukannya, ia akan membacacomposer.json
, menginstal dependensi dan menghasilkan file kunci.Ketika Anda menjalankannya
composer update
cukup membacacomposer.json
, instal dependensi dan perbarui lockfile (atau buat lockfile baru).sumber
composer install
composer.lock
memang ada.composer.lock
file.composer.lock
tidak tidak ada.composer.json
.composer.lock
file berdasarkan paket yang diinstal.Sesuai
composer help install
::composer update
composer.json
file (menginstal, memperbarui, dan menghapus).composer.lock
file sesuai dengan perubahan.Sesuai
composer help update
::Lihat juga: Komposer: Ini Semua Tentang File Kunci
sumber
Perbedaan terbaik antara
composer update
dancomposer install
pemasangan komposer
Untuk menambahkan dependensi, Anda perlu menambahkannya secara manual ke file composer.json.
Jika file composer.lock ada, instal persis apa yang dikhususkan pada file ini
Tidak ada komponen yang akan diperbarui dengan perintah ini.
pembaruan komposer
Untuk menambah atau menghapus dependensi, Anda perlu menambahkannya secara manual ke file composer.json
Jika Anda tidak dapat (atau tidak tahu cara menambah atau menghapus pustaka yang sebenarnya mudah, cukup tambahkan nama dependensi dan versi di properti yang memerlukan file) ubah file composer.json secara manual atau Anda lebih suka menggunakan baris perintah sebagai gantinya, komposer memiliki fungsi khusus untuk ini:
komposer membutuhkan
Sebagai contoh jika kita ingin menambahkan ketergantungan dengan baris perintah, kita cukup menjalankannya
composer require twig/twig
komposer hapus
Jika Anda ingin menghapus ketergantungan yang tidak digunakan, kami hanya akan menjalankan:
composer remove twig/twig --update-with-dependencies
sumber
pemasangan komposer
pembaruan komposer
Kenapa kita perlu 2 perintah. Saya pikir itu bisa dijelaskan oleh composer.lock.
Bayangkan, kita TIDAK punya
composer.lock
dan dalamcomposer.json
, ada ketergantungan"monolog/monolog": "1.0.*"
atau"monolog/monolog": "^1.0"
.Kemudian, ia akan memiliki beberapa kasus
composer install
dalam waktu yang berbeda.Bagaimana jika kita selalu menggunakan versi EXACT di
composer.json
seperti"monolog/monolog": "1.0.1"
?Kami masih membutuhkannya
composer.lock
karenacomposer.json
hanya melacak versi utama ketergantungan Anda, itu tidak dapat melacak versi dependensi ketergantungan.Bagaimana jika semua dependensi dependensi juga menggunakan versi EXACT?
Bayangkan Anda mulai dengan SEMUA dependensi yang menggunakan versi EXACT maka Anda tidak peduli
composer.lock
. Namun, beberapa bulan kemudian, Anda menambahkan dependensi baru (atau memperbarui dependensi lama), dan dependensi dependensi ini tidak menggunakan versi EXACT. Maka lebih baik pedulicomposer.lock
pada awalnya.Selain itu, ada keuntungan dari versi semantik daripada versi yang tepat. Kami dapat memperbarui ketergantungan berkali-kali selama pengembangan dan perpustakaan sering memiliki beberapa perubahan kecil seperti perbaikan bug. Maka lebih mudah untuk meningkatkan ketergantungan yang menggunakan versi semantik.
sumber