Dodałem moduł ZfcUser w mojej aplikacji Zend Framework 2. Ale muszę użyć istniejącej tabeli bazy danych, , która ma nieco inne nazwy kolumn niż domyślna struktura tabeli dla ZfcUser.ZF2: Niestandardowy program odwzorowujący użytkownika dla modułu ZfcUser
W ZfcUser wiki page mówi, że możliwe jest użycie niestandardowego programu odwzorowującego, jeśli mój model nie jest zgodny z podanym interfejsem. Ponieważ moja tabela bazy danych różni się od domyślnej, moja klasa jednostek użytkownika jest również inna niż standardowa ZfcUser \ Entity \ User. Ale mogę powiedzieć ZfcUser pracować z własną klasą łatwo nadrzędnymi ustawienie w pliku konfiguracyjnym /autoload/zfcuser.global.php:
'user_entity_class' => 'MyApp\Entity\MyUser',
`ve ale nie znalazł w łatwy sposób do powiedzenia ZfcUser używaj mojej klasy mappera do tej pory.
Mam tylko okazało się, że odwzorowujący jest tworzony przez ZfcUser \ Module :: getServiceConfig() wewnątrz której, widzę element odwzorowujący jest zwracany z jego funkcji fabryczne:
// ...
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;
},
// ...
Czy istnieje sposób, aby sprawić, że ZfcUser użyje mojej niestandardowej klasy mapera użytkownika?
Wielkie dzięki! Szukałem tych samych informacji, a przy pomocy twojego postu udało mi się ponownie załadować klasy Entity i Mappera zfcUser do wykorzystania z moim DB i rozszerzoną funkcjonalnością Entity! – Brock