annotations - 如何使用注释在我的项目中使用 Doctrine 2 调整模块 ZfcUser/zfcuserDoctrineORM?

标签 annotations doctrine zfcuser

我是从阿根廷写的,请原谅我的英语小。我在使用模块时遇到了一些问题 ZfcUserzfcuserDoctrineORM .我需要将它们集成到我的项目中。我正在使用 Zend 框架 2、 Doctrine 2.3 和 postgreSQL,这是我第一次使用这些工具。因为这个原因,有很多东西我没有掌握好,我的/config/application.config.php中包含了所有的模块。我的连接是在我的数据库中配置的 /config/autoload/local.php
本地.php

返回数组(
' Doctrine ' => 数组(
'连接' => 数组(
'orm_default' =>数组(
'driverClass' => 'Doctrine\DBAL\Driver\PDOPgSql\Driver',
'参数' => 数组(
'主机' => '本地主机',
'端口' => '5432',
'用户' => 'postgres',
'密码' => 'postgres',
'dbname' => 'ministerio',
)
)
)
),
);

应用程序.config.php

返回数组(
'模块' => 数组(
'应用',
' Doctrine 模块',
'DoctrineORMModule',
'Reeser',//我的模块名称
'ZfcBase',
'Zfc用户',
'ZfcUserDoctrineORM',

),
'module_listener_options' =>数组(
'config_glob_paths' =>数组(
'config/autoload/{,*.}{global,local}.php',
),
'module_paths' =>数组(
'。/模块',
'。/小贩',
),
),
);

为了映射我的数据库,我使用了带有 Doctrine 的注释,并且在我的模块中生成了我自己的实体用户。

我添加了配置文件zfcuser.global.phpzfcuserdoctrineorm.global.php在我的自动加载目录中,但我不知道如何配置它们以便文件识别我的实体。

进入 zfcuser.global.php

'zend_db_adapter' => 'Zend\Db\Adapter\Adapter',//应该注释掉吗?

'user_entity_class' => 'Reeser\Entity\User',

'login_redirect_route' => 'Reeser/index/index.phtml',

返回数组(
'zfcuser' => $settings,//我如何配置这段代码?
'service_manager' =>数组(
'别名' => 数组(
'zfcuser_zend_db_adapter' => (isset($settings['zend_db_adapter'])) ?
$settings['zend_db_adapter']: 'Zend\Db\Adapter\Adapter',
),
),
);

进入 zfcuserdoctrineorm.global.php

返回数组(
' Doctrine ' => 数组(
'驱动程序' => 数组(
'zfcuser_driver' =>数组(
'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
'缓存' => '数组',
'路径' => 数组(__DIR__ .'/../src/Reeser/Entity')
),

'orm_default' =>数组(
'驱动程序' => 数组(
'ZfcUser\Entity' => 'zfcuser_driver'
)
)
)
),
);

我看到了那个模块zfcuserDoctrineORM适用于 XML。
该模块可以适应注释吗?如果这是可能的,我如何使我的实体用户适应这个模块?我应该修改哪些文件?

最佳答案

你不需要适应ZfcUserDoctrineORM使用注释映射。 DoctrineORMModule native 支持混合映射(您可以选择决定哪些实体与哪些驱动程序进行映射)。关于 ZfcUser的配置,我个人根本没有修改它(我只是对 ZfcUserDoctrineORM 做了一些覆盖)。

  • 删除 config/autoload/zfcuser.global.php (你不需要)
  • 删除 config/autoload/zfcuserdoctrineorm.global.php
  • 在定义用户实体的模块中,如果要覆盖 ZfcUserDoctrineOrm 的注释驱动程序,请使用以下命令(假设文件位于 YourModule/config/module.config.php 中):
    // entity mappings
    'doctrine' => array(
        'driver' => array(
            'zfcuser_entity' => array(
                // customize path
                'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
                'paths' => array(__DIR__ . '/../src/YourModule/Entity'),
            ),
            'orm_default' => array(
                'drivers' => array(
                    'YourModule\Entity' => 'zfcuser_entity',
                ),
            ),
        ),
    ),
    
    // ZfcUser specific config
    'zfcuser' => array(
        'user_entity_class'       => 'YourModule\Entity\User',
        'enable_default_entities' => false,
    ),
    

  • 这应该适用于 0.1.x ZfcUserDoctrineORM 的版本

    关于annotations - 如何使用注释在我的项目中使用 Doctrine 2 调整模块 ZfcUser/zfcuserDoctrineORM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13795021/

    相关文章:

    symfony - Symfony2 实体注解中的可配置参数

    c++ - 从代码中删除 SAL 注释是否安全?

    php - 选择实体假设相关实体不存在

    doctrine - 禁用测试环境/单元测试的 Doctrine 缓存(symfony 4)

    zend-framework2 - 我将如何记录成功的登录

    java - Android @NonNull 和 Jetbrains @NonNull 有什么区别

    git - 使用 Git 时如何处理 Doctrine Migrations?

    zend-framework - ZF2 - 已弃用 : ServiceManagerAwareInterface is deprecated and will be removed in version 3. 0,以及 ServiceManagerAwareInitializer

    php - 使用 zfcuser 和自定义模块选择字段

    java - 如何在 PowerMock SuppressStaticInitializationFor Annotation 中拥有超过 1 个类