Hari ini saya menerima kesalahan tipe yang sama:
Kesalahan PHP Fatal: Tidak dapat mendeklarasikan kelas Kelas \ Nama \ Di Sini, karena nama tersebut sudah digunakan di /var/www/m2/magento2/app/code/path/to/the/class.php pada baris 100
di mana baris 100 adalah akhir file.
Kira-kira setelah 4 jam debugging saya benar-benar menemukan alasannya: salah cetak dalam deklarasi namespace. Hingga saat terakhir saya tidak percaya bahwa itu adalah kesalahan ketik dalam deklarasi nama, tetapi ketika saya telah menulis ulang semua nama lagi - kesalahan telah hilang. Artikel ini sangat membantu:
Aku akan menggaruk kepalaku sebentar, bertanya-tanya apa yang terjadi, dan akhirnya menyadari bahwa ini adalah ini
Pulsetorm
yaitu saya telah salah ketik nama namespace, dan ketika autoloads awal memuat file kelas, itu tidak akan mendefinisikan kelas yang dicari, dan kemudian autoloader kedua (biasanya komposer) memuatnya lagi, dan mencoba untuk mendefinisikan kembali yang sama kelas yang salah.
yaitu, Magento menginginkan kelas
Pulsestorm\Helloworld\Observers\Block
tapi saya mendefinisikan
Pulsetorm\Helloworld\Observers\Block
terima kasih untuk namespace yang salah.
Terima kasih, Alan Storm :)
MEMPERBARUI:
Tipe lain dari kesalahan itu adalah deklarasi Namespace yang salah dengan bagian namespace yang hilang, seperti dalam contoh ini:
Kesalahan:
Pembuatan kode repositori ... 1/7 [====> -----------------------] 14% 1 detik 50,0 MiBPHP Kesalahan fatal: Tidak dapat mendeklarasikan class Migration \ Step \ Version11410to2000Test, karena namanya sudah digunakan di /var/www/vhosts/rwld/vendor/magento/data-migration-tool/tests/unit/testsuite/Migration/Step/UrlRewrite/Version11410to2000Test.php on baris 109
di mana baris 109 adalah akhir file.
Dalam file tersebut vendor/magento/data-migration-tool/tests/unit/testsuite/Migration/Step/UrlRewrite/Version11410to2000Test.php
kami menemukan namespace seperti Migration\Step
ketika namespace yang benar seharusnya Migration\Step\UrlRewrite
karena path ke kelas ini Migration/Step/UrlRewrite
. Setelah mengubah namespace ke Migration/Step/UrlRewrite
kesalahan hilang.