今天,我收到了相同类型的错误:
PHP致命错误:无法声明类Class \ Name \ Here,因为该名称已在第100行的/var/www/m2/magento2/app/code/path/to/the/class.php中使用
第100行是文件的结尾。
经过大约4个小时的调试,我确实找到了原因:名称空间声明中的打印错误。直到最后一刻,我都不相信这是名称声明中的印刷错误,但是当我重新重写所有名称时,该错误消失了。这篇文章非常有帮助:
我会挠头一段时间,想知道发生了什么,最终意识到是这样的
Pulsetorm
即我输入了一个名称空间名称,当初始自动加载加载类文件时,它不会定义要查找的类,然后第二个自动加载器(通常是Composer)再次加载它,并尝试重新定义相同的名称不正确的课程。
即,Magento想要上课
Pulsestorm\Helloworld\Observers\Block
但我定义
Pulsetorm\Helloworld\Observers\Block
多亏了错误的命名空间。
谢谢艾伦·风暴():
更新:
该错误的另一种类型是不正确的名称空间声明,缺少名称空间的一部分,如以下示例所示:
错误:
存储库代码生成... 1/7 [====> -----------------------] 14%1秒50.0 MiBPHP致命错误:无法声明类Migration \ Step \ Version11410to2000Test,因为该名称已在/var/www/vhosts/rwld/vendor/magento/data-migration-tool/tests/unit/testsuite/Migration/Step/UrlRewrite/Version11410to2000Test.php中使用109行
第109行是文件的末尾。
在文件中,vendor/magento/data-migration-tool/tests/unit/testsuite/Migration/Step/UrlRewrite/Version11410to2000Test.php
我们找到了Migration\Step
正确的名称空间,Migration\Step\UrlRewrite
因为该类的路径为Migration/Step/UrlRewrite
。将名称空间更改为Migration/Step/UrlRewrite
错误后,错误消失了。