0
我在從Doctrine2嘗試映射我的類結構時得到一個錯誤。在Zend Framework 2模塊結構中映射許多命名空間的原則錯誤
我Zend的應用程序的模塊結構如下:
module
ModuleOne
config
module_config.php
src
ModuleOne
Entity
ClassOne.php
ModuleOneAdmin
Entity
ClassTwo.php
ClassTwoRepository.php
Module.php
ModuleTwo
config
module_config.php
src
ModuleTwo
Entity
ClassThree.php
Module.php
我有2子命名空間內ModuleOne的,所以,我的自動加載磁帶機(在ModuleOne的/ Module.php)配置是這樣的:
public function getAutoloaderConfig()
{
return array(
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ . 'Admin' => __DIR__ . '/src/' . __NAMESPACE__ . 'Admin',
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__
),
),
);
}
在ModuleOne的/配置/ module_config.php,學說配置
'doctrine' => array(
'driver' => array(
__NAMESPACE__ . '_driver' => array(
'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
'cache' => 'array',
'paths' => array(
__DIR__ . '/../src/' . __NAMESPACE__ . '/Entity'
)
),
'orm_default' => array(
'drivers' => array(
__NAMESPACE__ . '\Entity' => __NAMESPACE__ . '_driver'
),
),
),
)
我我們將ModuleOne和ModuleTwo放在另一個模塊中(我沒有在模塊結構中指定,以避免使其成爲詳盡的),它擁有控制器和視圖。
當我運行我的應用程序,它就會和錯誤的,對於一個實體的庫調用行:
$repository = $this->getEm()->getRepository('ModuleOneAdmin\Entity\ClassTwo');
的錯誤是:
The class 'ModuleOneAdmin\Entity\ClassTwo' was not found in the chain configured namespaces ModuleOne\Entity, ModuleTwo\Entity
我已經搜查一在StackOverflow和Google搜索的其他網站中有很多關於這樣的問題,但沒有解決我的問題。它像Doctrine在內部映射中找不到我的ModuleOneAdmin。有一些配置,我錯過了嗎?
在此先感謝。