【问题标题】:Zend Framework 3 share doctrine models between modules of the same projectZend Framework 3 在同一项目的模块之间共享原则模型
【发布时间】:2024-04-18 05:10:01
【问题描述】:

我是 Zend Framework 3 编程的新手。

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

现在,我们需要在同一个项目中创建另一个模块。所以我们想把数据库映射对象放在第一个模块之外,以便在两个模块之间共享这些类。

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

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

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

谢谢。

【问题讨论】:

    标签: zend-framework doctrine-orm module share servicemanager


    【解决方案1】:

    最后,在我的解决方案中,我在 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'
                ]
            ]
        ]
    ]
    

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

    【讨论】:

      最近更新 更多