Après avoir créé une interface simple dans mon nouveau module. J'ai tapé dans la configuration bin / magento: di: compile, et je reçois une erreur disant que le nom est déjà utilisé.
Voici mon code:
namespace Company\Test\Api;
/*
* @api
*/
interface XyzInterface {
public function getSomething();
}
Ensuite, je reçois cette erreur:
Repositories code generation... 1/7 [====>-----------------------] 14% 2 secs 52.0 MiBPHP
Fatal error: Cannot declare interface Company\Test\Api\XyzInterface, because the name is already in use in .../app/code/Company/Test/Api/XyzInterface.php on line 13
La ligne est "l'interface XyzInterface", je ne sais pas ce que je fais mal.
Réponses:
Aujourd'hui, j'ai reçu l'erreur de même type:
où la ligne 100 est à la fin du fichier.
Environ après 4 heures de débogage, je trouve vraiment la raison: une erreur d'impression dans la déclaration de l'espace de noms. Jusqu'au dernier moment, je ne croyais pas qu'il s'agissait d'une erreur typographique dans la déclaration des noms, mais quand j'ai réécrit tous les noms à nouveau - l'erreur a disparu. Cet article a été très utile:
Merci, Alan Storm :)
MISE À JOUR:
Un autre type de cette erreur est une déclaration d'espace de noms incorrecte avec une partie manquante de l'espace de noms, comme dans cet exemple:
Erreur:
où la ligne 109 est à la fin du fichier.
Dans le fichier,
vendor/magento/data-migration-tool/tests/unit/testsuite/Migration/Step/UrlRewrite/Version11410to2000Test.php
nous avons trouvé l'espace de noms commeMigration\Step
lorsque l'espace de noms correct devrait êtreMigration\Step\UrlRewrite
car le chemin d'accès à cette classe estMigration/Step/UrlRewrite
. Après le changement de l'espace de noms,Migration/Step/UrlRewrite
l'erreur a disparu.la source