2

我确实读过这个答案ZF2,使用供应商模块的表单类的最佳实践是什么?. 所以主要清楚如何更改供应商模块的可配置部分,但是如果在 zfcUser 模块中我想向实体/用户添加新功能该怎么办?

简而言之,我想检查用户角色,我已添加到 DB 字段,最好的方法是什么?也许我应该在其他地方做而不是在 zfcUSer 如果是这样的话在哪里?

4

2 回答 2

6

看一眼ZfcUser/config/zfcuser.global.php.dist

在那里你会看到这个

/**
 * User Model Entity Class
 *
 * Name of Entity class to use. Useful for using your own entity class
 * instead of the default one provided. Default is ZfcUser\Entity\User.
 * The entity class should implement ZfcUser\Entity\UserInterface
 */
//'user_entity_class' => 'ZfcUser\Entity\User',

指示很简单,将文件复制到./config/autoload/zfcuser.global.php,确保您的实体类实现ZfcUser\Entity\UserInterface,取消注释该行并更改 FQCN 以匹配您要使用的实体。

于 2013-03-25T15:47:10.060 回答
2

我不会声称这是最佳实践,但这就是我设法处理这种情况的方式!首先非常感谢回答这个问题ZF2: Custom user mapper for ZfcUser module

所以我做了:

  1. zfcUser/Entity在自动加载中添加了配置zfc-user.global.php
    'zfcuser' => 数组(
        'tableName' => '用户',
        'user_entity_class' => '应用程序\实体\用户'
    ),
    
  2. 将我的类添加到我的Entity\UserEntity和 Mapper 子文件夹中Mapper\UserMapper\Hydratorsrc/Application
  3. 将这些类命名空间更新为我的Application\EntityApplication\Mapper
  4. 将此配置添加到getServiceConfigmy 的功能中Module.php

    'factories' => [
        'zfcuser_user_mapper' => function ($sm) {
            $mapper = new Mapper\User();
            $mapper->setDbAdapter($sm->get('Zend\Db\Adapter\Adapter'));
            $mapper->setEntityPrototype(new Entity\User());
            $mapper->setHydrator(new Mapper\UserHydrator());
            return $mapper;
        },
    ]
    
  5. 更新了我的类依赖项以使用ZfcUSer并启动我Entity\User的 as extends \ZfcUser\Entity\User implements \ZfcUser\Entity\UserInterface
于 2013-03-30T21:13:11.777 回答