Hoje recebi o mesmo erro de tipo:
Erro fatal do PHP: Não é possível declarar a classe Class \ Name \ Here, porque o nome já está em uso em /var/www/m2/magento2/app/code/path/to/the/class.php na linha 100
onde a linha 100 é final do arquivo.
Aproximadamente após 4 horas de depuração, eu realmente acho o motivo: uma impressão incorreta na declaração do namespace. Até o momento final, eu não acreditava que se tratasse de um erro tipográfico na declaração de nomes, mas quando reescrevi todos os nomes novamente - o erro desapareceu. Este artigo foi muito útil:
Vou coçar a cabeça por um tempo, me perguntar o que está acontecendo e, eventualmente, perceber que é isso
Pulsetorm
ou seja, digitei incorretamente o nome de um espaço para nome e, quando o carregamento automático inicial carrega o arquivo de classe, ele não define a classe que está procurando e, em seguida, um segundo carregador automático (normalmente o compositor) o carrega novamente e tenta redefinir o mesmo classe incorreta.
ou seja, Magento queria a classe
Pulsestorm\Helloworld\Observers\Block
mas eu defini
Pulsetorm\Helloworld\Observers\Block
graças ao espaço para nome errado.
Obrigado, Alan Storm :)
ATUALIZAR:
Outro tipo desse erro é a declaração incorreta do Namespace com parte faltante do namespace, como neste exemplo:
Erro:
Geração de código de repositórios ... 1/7 [====> -----------------------] 14% 1 s 50,0 MiBPHP Erro fatal: não é possível declarar classe Migration \ Step \ Version11410to2000Test, porque o nome já está sendo usado em /var/www/vhosts/rwld/vendor/magento/data-migration-tool/tests/unit/testsuite/Migration/Step/UrlRewrite/Version11410to2000Test.php em linha 109
onde a linha 109 é final do arquivo.
No arquivo vendor/magento/data-migration-tool/tests/unit/testsuite/Migration/Step/UrlRewrite/Version11410to2000Test.php
, encontramos o espaço para nome como Migration\Step
quando deveria estar o espaço para nome correto, Migration\Step\UrlRewrite
pois é o caminho para essa classe Migration/Step/UrlRewrite
. Após a alteração do espaço para nome, Migration/Step/UrlRewrite
o erro desapareceu.