public function getServiceConfig() { return array('factories' => array('auditConfig' => function ($sm) { $config = $sm->get('Config'); $auditconfig = new Configuration(); $auditconfig->setAuditedEntityClasses($config['zf2-entity-audit']['entities']); $auditconfig->setZfcUserEntityClass($config['zf2-entity-audit']['zfcuser.entity_class']); return $auditconfig; }, 'auditManager' => function ($sm) { $config = $sm->get('Config'); $evm = $sm->get('doctrine.eventmanager.orm_default'); $auditconfig = $sm->get('auditConfig'); if ($config['zf2-entity-audit']['zfcuser.integration'] === true) { $auth = $sm->get('zfcuser_auth_service'); if ($auth->hasIdentity()) { $identity = $auth->getIdentity(); $auditconfig->setCurrentUser($identity); } /* need to handle the unauthenticated user action case, do it your own , 99% i will drop support for unauthenticated user auditing */ } $auditManager = new Manager($auditconfig); $evm->addEventSubscriber(new CreateSchemaListener($auditManager)); $evm->addEventSubscriber(new LogRevisionsListener($auditManager)); return $auditManager; }, 'auditReader' => function ($sm) { $auditManager = $sm->get('auditManager'); $entityManager = $sm->get('doctrine.entitymanager.orm_default'); return $auditManager->createAuditReader($entityManager); })); }