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 tiadaAndaikan 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!