Rumah >pembangunan bahagian belakang >tutorial php >Mengapakah Komposer mengeluarkan amaran penamatan autoloading PSR-4 tentang ketidakpadanan laluan kelas?

Mengapakah Komposer mengeluarkan amaran penamatan autoloading PSR-4 tentang ketidakpadanan laluan kelas?

Patricia Arquette
Patricia Arquetteasal
2024-11-29 00:58:10454semak imbas

Why is Composer issuing PSR-4 autoloading deprecation warnings about class path mismatches?

Pemberhentian Autoloading PSR-4 Komposer: Tidak Padan Laluan Kelas

Apabila melaksanakan arahan komposer seperti kemas kini dan pemasangan, anda mungkin menghadapi notis penamatan mengenai kelas yang tidak mematuhi standard pemuatan auto PSR-4 ini biasanya berlaku apabila terdapat percanggahan antara kelas nama yang layak sepenuhnya dan laluan fail yang sepadan.

Kes Laluan

Punca yang paling biasa ialah ketidakpadanan dalam kes komponen nama laluan dan nama kelas. Contohnya, "foo/bar/Baz.php" tidak sepadan dengan "FooBarBaz." Pastikan kes bagi setiap komponen nama laluan sepadan dengan kes ruang nama yang diwakilinya, seperti "Foo/Bar/Baz.php" untuk "FooBarBaz". Kadangkala, kelas anda (atau ruang nama) mungkin dinamakan FooBar, tetapi laluan cakeranya ialah "foo-bar". Keadaan ini juga mencetuskan amaran. Anda perlu menamakan semula fail atau kelas (atau ruang nama).

Selalunya menukar laluan atau fail adalah lebih mudah daripada menukar nama kelas atau ruang nama kerana menukar nama kelas atau ruang nama memerlukan anda memfaktorkan semula kod anda agar sepadan dengan nama baharu, manakala menukar laluan tidak memerlukan pemfaktoran semula apa-apa kandungan.

Ruang nama bersarang dan pengisytiharan yang tiada

Andaikan anda mempunyai:

dan Dummy kelas ditakrifkan dalam src/Buzz:

Kod di atas berfungsi dengan baik tetapi akan memberikan amaran serupa dengan situasi lain. Pendekatan yang betul hendaklah:

"autoload": {
    "psr-4": {
        "Fizz\Buzz\": "src/"
    }
}

Anda perlu membuat perubahan bukan sahaja pada kelas yang terjejas, tetapi juga pada mana-mana fail lain yang menggunakan atau mengimport kelas tersebut (contohnya, kini mengisytiharkan penggunaan FizzBuzzBuzzDummy;) .

Atas ialah kandungan terperinci Mengapakah Komposer mengeluarkan amaran penamatan autoloading PSR-4 tentang ketidakpadanan laluan kelas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn