Tajuk yang ditulis semula: Menyelesaikan ralat Komposer: "Versi PHP anda tidak memenuhi keperluan" - Rujukan Peningkatan PHP
P粉162773626
P粉162773626 2023-08-22 23:14:44
0
2
558
<p>Selepas menaik taraf PHP daripada 7.4 kepada 8.0, saya menjalankan <kod>kemas kini komposer</code> <blockquote> <ul> <li>acme/some-package[1.0.0, ..., 1.4.0] memerlukan php ^5.6.4 || ^7.0 -> Versi php anda (8.0.3) tidak memenuhi keperluan ini. </li> </ul> </blockquote> <p>Apakah maksud ini dan bagaimana saya membetulkannya? </p> <p><em> p>
P粉162773626
P粉162773626

membalas semua(2)
P粉670838735

Jika anda menggunakan PHP versi 8, beberapa pemalam yang belum disokong boleh menyebabkan ralat pemasangan.

composer install --ignore-platform-req=php 或者 composer install --ignore-platform-reqs

Pilihan ini boleh digunakan untuk menetapkan keperluan khusus yang boleh diabaikan oleh komposer.

P粉289775043

Soalan

Pakej komposer boleh menentukan versi PHP yang mereka sokong, sebagai tambahan kepada versi pakej lain yang mereka perlukan.

Apabila menghuraikan versi pakej untuk dipasang, Komposer mesti mencari versi yang sepadan dengan semua kekangan:

  • Versi mengehadkan anda tentukan untuk kebergantungan dalam composer.json
  • Kekangan versi yang ditentukan oleh setiap pakej untuk kebergantungannya
  • Versi PHP yang disokong untuk setiap pakej

Jika tiada pakej yang memenuhi semua kekangan ini, anda akan menerima ralat.

Kekeliruan biasa

Perhatikan bahawa kekangan versi untuk versi PHP mengikut peraturan yang sama seperti kekangan Komposer lain. Oleh itu, kekangan untuk ^7.0 bermaksud "mana-mana versi 7.x di atas 7.0", tidak termasuk 8.0.

Penyelesaian

Untuk menyelesaikan masalah ini, anda perlu merehatkan salah satu kekangan:

  1. Lihat pakej yang disebut dalam mesej ralat (seperti acme/some-package dalam contoh) dan cari pada Packagist (atau mana-mana sumber pakej tersuai yang anda konfigurasikan).
  2. Semak untuk melihat sama ada terdapat versi baharu yang menyokong versi PHP anda.
  3. Jika tidak, anda perlu mengetahui apa yang perlu ditambah untuk menyokongnya. Ini mungkin bermakna menyemak projek secara terus, menjalankan ujiannya dan menyerahkan tampalan untuk menandakannya sebagai serasi dengan versi baharu.
  4. Jika (apabila) sokongan ditambah, anda perlu memastikan bahawa composer.json和其他依赖的软件包不排除该新版本。例如,如果您当前依赖于acme/some-package的版本^1.0,但PHP 8.0仅从版本2.2.0开始支持,您需要将约束条件更改为^2.2 dan pakej bergantung anda yang lain tidak mengecualikan versi baharu itu. Sebagai contoh, jika anda kini bergantung pada versi
  5. ^1.0, tetapi PHP 8.0 hanya disokong bermula dengan versi 2.2.0, anda perlu menukar kekangan kepada ^2.2, dan Pastikan aplikasi anda masih serasi.

Penyelesaian sementara

composer.json中使用platformKadangkala anda agak pasti bahawa aplikasi anda akan berjalan dengan betul menggunakan versi pakej yang sama seperti sebelum ini. Dalam kes ini, anda boleh menggunakan konfigurasi platform dalam Variable untuk berpura-pura anda masih menggunakan versi lama. Ini hanya boleh digunakan sebagai penyelesaian sementara atau untuk ujian

kerana ini bermakna anda boleh memasang pakej yang tidak akan berfungsi sama sekali pada versi PHP baharu anda.

Contohnya:

{
    "config": {
        "platform": {
             "php": "7.4.999"
        }
    }
}
Lihat juga "Mengatasi kebergantungan asas PHP dalam Komposer " 🎜
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!