我确实读过这个答案ZF2,与供应商模块的表单类一起工作的最佳实践是什么?因此,主要清楚如何更改供应商模块的可配置部分,但是如果在zfcUser模块中我想向实体/用户添加新功能,我该怎么办?
简而言之,我想检查用户角色,我已经添加到DB字段,最好的方法是什么?也许我应该在其他地方做,而不是在zfcUSer中,如果是的话,在哪里?
看看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 ZfcUserEntityUser.
* The entity class should implement ZfcUserEntityUserInterface
*/
//'user_entity_class' => 'ZfcUserEntityUser',
方向很简单,将文件复制到./config/autoload/zfcuser.global.php
,确保您的实体类实现ZfcUserEntityUserInterface
,取消注释行并更改FQCN以匹配您想要使用的实体。
我不会说这是最佳实践,但这就是我处理这种情况的方法!首先,非常感谢ZF2: ZfcUser模块的自定义用户映射器。
所以,我做了:
- 在
zfc-user.global.php
自动加载中增加了zfcUser/Entity
的配置:<>之前'zfcuser' => array('tableName' => 'users','user_entity_class' => 'ApplicationEntityUser'), - 将
EntityUser
,MapperUser
和MapperHydrator
的类添加到我的src/Application
实体和映射子文件夹中。 - 将这些类命名空间更新为我的
ApplicationEntity
和ApplicationMapper
-
将此配置添加到我的
Module.php
的getServiceConfig
功能:'factories' => [ 'zfcuser_user_mapper' => function ($sm) { $mapper = new MapperUser(); $mapper->setDbAdapter($sm->get('ZendDbAdapterAdapter')); $mapper->setEntityPrototype(new EntityUser()); $mapper->setHydrator(new MapperUserHydrator()); return $mapper; }, ]
- 更新我的类依赖使用
ZfcUSer
和启动我的EntityUser
作为extends ZfcUserEntityUser implements ZfcUserEntityUserInterface
。