我目前在我的代码库中面临一个奇怪的错误。你可以在我的 github上看到完整的 ZF2s 项目代码。<-有一个链接
我正在设置一个包含两个实体(X 和 Y)的模块。Entity_X 包含通过 (targetEntity="Entity_Y") 对 Entity_Y 的引用。错误持续存在于 FQCN 或仅 CN 本身。
Entity_X:
id int PK,
id_Y int FK,
text varchar
Entity_Y:
id int PK,
text varchar
首先加载 Entity_Y 然后加载 Entity_X 一切正常。这对于 StandardAutoloader 和 ClassMapAutoloader 都是如此。但是:在 ClassMapAutoloader 存在的情况下首先加载 Entity_X 时,我将看到以下错误:
Fatal error: Cannot redeclare class Kennzahlen\Entity\Referenzwert (Entity_Y)
in \module\Kennzahlen\src\Kennzahlen\Entity\Referenzwert.php
on line 13
首先使用 StandardAutoloader 加载 Entity_X 也没有任何问题。
更新
问题似乎在 ZF2s ClassMapAutoloader(或一般的自动加载机制)中。我的模块使用了 ClassMapAutoloader 并使用它我得到了上述错误。当删除 ClassMapAutoloader 并简单地使用 StandardAutoloader 时,错误消失得无影无踪。感谢@ocramius 和所有其他我为此烦恼的人:)