Bagaimana cara menginstal versi paket tertentu menggunakan Komposer?


Jawaban:



110

Tambahkan tanda kutip ganda untuk menggunakan operator tanda sisipan di nomor versi.

composer require middlewares/whoops "^0.4"

3
Saya tidak melihat titik waktu di mana Anda bisa memberikan nama paket dan versi sebagai dua argumen terpisah.
x-yuri

1
@ x-yuri menyampaikan nama dan versi paket sebagai argumen terpisah bekerja untuk saya menggunakan komposer 1.5.1
bryonbean

Meskipun secara teknis ini bukan jawaban "benar" untuk pertanyaan OP, ini mungkin lebih bermanfaat bagi kebanyakan orang.
Pengadilan Rich

19

cukup gunakan php composer.phar butuhkan

Sebagai contoh :

php composer.phar require doctrine/mongodb-odm-bundle 3.0

Juga tersedia dengan pemasangan.

https://getcomposer.org/doc/03-cli.md#require https://getcomposer.org/doc/03-cli.md#install


Sebagai catatan, menambahkan batasan khusus tidak tersedia dengan install- hanya dengan require. Jika Anda berharap untuk beralih ke versi tertentu dan check-in composer.lockfile Anda, Anda bisa, tetapi Anda harus menggunakan composer requiredan kemudian mengembalikan perubahan ke composer.jsonsesudahnya.
mindplay.dk

Versi sebagai argumen terpisah? Apakah itu pernah ada?
x-yuri

10

Seperti yang disebutkan @alucic, gunakan:

composer require vendor/package:version

atau Anda dapat menggunakan:

composer update vendor/package:version

Anda mungkin harus meninjau posting StackOverflow ini tentang perbedaan antara pemasangan komposer dan pembaruan komposer .

Terkait dengan pertanyaan tentang nomor versi, Anda dapat meninjau dokumentasi Komposer pada versi , tetapi singkatnya di sini:

  • Rentang Versi Tilde ( ~ ) - ~ 1.2.3 setara dengan> = 1.2.3 < 1.3.0
  • Rentang Versi Karet ( ^ ) - ^ 1.2.3 setara dengan> = 1.2.3 < 2.0.0

Jadi, dengan Tilde Anda akan mendapatkan pembaruan tambalan secara otomatis tetapi versi minor dan utama tidak akan diperbarui. Namun, jika Anda menggunakan Caret, Anda akan mendapatkan tambalan dan versi minor, tetapi Anda tidak akan mendapatkan versi utama (melanggar perubahan).

Versi Tilde dianggap sebagai pendekatan yang "lebih aman", tetapi jika Anda menggunakan dependensi yang dapat diandalkan (perpustakaan yang terpelihara dengan baik) Anda seharusnya tidak memiliki masalah dengan Versi Caret (karena perubahan kecil seharusnya tidak melanggar perubahan.


5

Misalkan Anda ingin menginstal Laravel Collective. Saat ini di versi 6.x tetapi Anda ingin versi 5.8. Anda dapat menjalankan perintah berikut:

composer require "laravelcollective/html":"^5.8.0"

Contoh yang baik ditunjukkan di sini dalam dokumentasi: https://laravelcollective.com/docs/5.5/html


0

Di Anda composer.json, Anda dapat menempatkan:

{
    "require": {
        "vendor/package": "version"
    }
}

kemudian jalankan composer installatau composer updatedari direktori yang berisi composer.json. Kadang-kadang, bagi saya, komposer itu hinky, jadi saya akan mulai dengan composer clear-cache; rm -rf vendor; rm composer.locksebelumnya composer installuntuk memastikan itu mendapatkan barang segar.


Tentu saja, seperti yang ditunjukkan oleh jawaban lain, Anda dapat menjalankan yang berikut dari terminal:

composer require vendor/package:version

Dan pada versi:
- Artikel versi resmi Komposer
- Pencarian Ecosia

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.