0

我是 Zend Framework 3 编程的新手。

以前,我们创建了一个项目,其中所有数据库表的映射都包含在一个特定的模块中。

现在,我们需要在同一个项目中创建另一个模块。因此,我们希望将数据库映射对象放在第一个模块之外,以便在两个模块之间共享 tha 类。

我尝试仅为映射创建一个新模块,但没有成功。命名空间不存在。

在我寻找使用 ServiceManager 之类的解决方案后,我并没有真正理解如何使用它。

您知道是否有除使用 ServiceManager 之外的其他解决方案吗?如果没有,我是否使用关键字 use 中包含的对象更改了所有以前的代码,以便使用 ServiceManager ?

谢谢。

4

1 回答 1

0

最后在我的解决方案中,我创建了一个模块,该模块仅包含 src 目录下的学说映射的源文件。

/module
  /MyApplication
    /src
      /config
         /module.config.php
  /Common
    /src
      /DoctrinMapping
         /Entities
composer.json

composer.json我放:

"autoload": {
    "psr-4": {
         "MyApplication\\": "module/MyApplication/src/"
        ,"Common\\":"module/Common/src/"
    }
}

在项目根目录我执行命令行:

composer dump-autoload

在进入我的特定应用程序的module.config.php之后,我将教义参考定义为:

,'doctrine' =>
[
    'driver' =>
    [
        'common_entities' =>
        [
             'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver'
            ,'cache' => 'array'
            ,'paths' => array(__DIR__ . '/../../Common/src/DoctrineMapping/Entities')
        ],
        'orm_default' =>
        [
            'drivers' =>
            [
                'Common\DoctrineMapping\Entities' => 'common_entities'
            ]
        ]
    ]
]

这行得通,但我不知道这是否是应用的最佳解决方案。

于 2017-06-20T14:11:41.130 回答