Tajuk yang ditulis semula: Menyelesaikan ralat Komposer: "Versi PHP anda tidak memenuhi keperluan" - Rujukan Peningkatan PHP
P粉162773626
2023-08-22 23:14:44
<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>
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.
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:
composer.json
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:
acme/some-package
dalam contoh) dan cari pada Packagist (atau mana-mana sumber pakej tersuai yang anda konfigurasikan).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^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.composer.json
中使用platform
Kadangkala anda agak pasti bahawa aplikasi anda akan berjalan dengan betul menggunakan versi pakej yang sama seperti sebelum ini. Dalam kes ini, anda boleh menggunakan konfigurasiplatform
dalam Variable untuk berpura-pura anda masih menggunakan versi lama. Ini hanya boleh digunakan sebagai penyelesaian sementara atau untuk ujian