Zend Framework 2 アプリケーションにモジュールZfcUserを追加しました。しかし、ZfcUser のデフォルトのテーブル構造とは少し異なる列名を持つ既存のデータベース テーブルを使用する必要があります。
ZfcUser wiki ページでは、モデルが提供されたインターフェイスに準拠していない場合、カスタム マッパーを使用できると書かれています。また、データベース テーブルがデフォルトと異なるため、ユーザー エンティティ クラスも標準の ZfcUser\Entity\User とは異なります。しかし、ファイルconfig/autoload/zfcuser.global.phpの設定をオーバーライドすることで、 ZfcUser に自分のクラスを簡単に操作するように指示できます。
'user_entity_class' => 'MyApp\Entity\MyUser',
しかし、これまでのところ、ZfcUser にマッパー クラスを使用するように指示する簡単な方法は見つかりませんでした。
マッパーが ZfcUser\Module::getServiceConfig() によって作成されていることがわかりました。その内部では、マッパーがファクトリ関数から返されていることがわかります。
// ...
public function getServiceConfig()
{
return array(
// ...
'factories' => array(
// ...
'zfcuser_user_mapper' => function ($sm) {
$options = $sm->get('zfcuser_module_options');
$mapper = new Mapper\User();
$mapper->setDbAdapter($sm->get('zfcuser_zend_db_adapter'));
$entityClass = $options->getUserEntityClass();
$mapper->setEntityPrototype(new $entityClass);
$mapper->setHydrator(new Mapper\UserHydrator());
return $mapper;
},
// ...
ZfcUser にカスタム ユーザー マッパー クラスを使用させる方法はありますか?