Rumah  >  Soal Jawab  >  teks badan

Tajuk yang ditulis semula: Menyelesaikan ralat Komposer: "Versi PHP anda tidak memenuhi keperluan" - Rujukan Peningkatan PHP

<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粉162773626P粉162773626396 hari yang lalu519

membalas semua(2)saya akan balas

  • P粉670838735

    P粉6708387352023-08-23 22:07:58

    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.

    balas
    0
  • P粉289775043

    P粉2897750432023-08-23 09:22:20

    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

    " 🎜

    balas
    0
  • Batalbalas