/** * * @param \Zend\EventManager\Event $event */ public function onConfigMerge(ModuleEvent $event) { $config = $event->getConfigListener()->getMergedConfig(false); foreach ($config['sds']['doctrineExtensions']['manifest'] as $name => $manifestConfig) { if (!isset($manifestConfig['initalized']) || !$manifestConfig['initalized']) { $manifest = new Manifest($manifestConfig); $manifestConfig = $manifest->toArray(); $config['sds']['doctrineExtensions']['manifest'][$name] = $manifestConfig; //alias documentManager //add delegators $documentManagerConfig = $config; foreach (explode('.', $manifestConfig['document_manager']) as $key) { $documentManagerConfig = $documentManagerConfig[$key]; } $delegatorConfig = ['delegators' => [$manifestConfig['document_manager'] => ['doctrineExtensions.' . $name . '.documentManagerDelegatorFactory'], $documentManagerConfig['eventmanager'] => ['doctrineExtensions.' . $name . '.eventManagerDelegatorFactory'], $documentManagerConfig['configuration'] => ['doctrineExtensions.' . $name . '.configurationDelegatorFactory']]]; $config['service_manager'] = ArrayUtils::merge($config['service_manager'], $delegatorConfig); } } if (!isset($config['sds']['doctrineExtensions']['manifest']['default']) || !isset($config['sds']['doctrineExtensions']['manifest']['default']['extension_configs']['extension.dojo'])) { //remove dojo_src.default route if doctrineExtensions.dojo.default is not configured unset($config['router']['routes']['dojo.default']); } if (!isset($config['sds']['doctrineExtensions']['manifest']['default']) || !isset($config['sds']['doctrineExtensions']['manifest']['default']['extension_configs']['extension.rest'])) { //remove rest.default route if doctrineExtensions.rest.default is not configured unset($config['router']['routes']['rest.default']); } $event->getConfigListener()->setMergedConfig($config); }
public function setUp() { $manifest = new Manifest(['documents' => [__NAMESPACE__ . '\\TestAsset\\Document' => __DIR__ . '/TestAsset/Document'], 'extension_configs' => ['extension.serializer' => ['type_serializers' => ['string' => 'stringTypeSerializer']]], 'document_manager' => 'testing.documentmanager', 'service_manager_config' => ['factories' => ['testing.documentmanager' => 'Sds\\DoctrineExtensions\\Test\\TestAsset\\DocumentManagerFactory']]]); $manifest->getServiceManager()->setInvokableClass('stringTypeSerializer', 'Sds\\DoctrineExtensions\\Test\\Serializer\\TestAsset\\StringSerializer'); $this->documentManager = $manifest->getServiceManager()->get('testing.documentmanager'); $this->serializer = $manifest->getServiceManager()->get('serializer'); }
public function setUp() { $manifest = new Manifest(['documents' => [__NAMESPACE__ . '\\TestAsset\\Document' => __DIR__ . '/TestAsset/Document'], 'extension_configs' => ['extension.dojo' => ['file_paths' => [['filter' => '', 'path' => __DIR__ . '/../../../../Dojo']]], 'extension.serializer' => true, 'extension.validator' => true], 'document_manager' => 'testing.documentmanager', 'service_manager_config' => ['factories' => ['testing.documentmanager' => 'Sds\\DoctrineExtensions\\Test\\TestAsset\\DocumentManagerFactory', 'identity' => function () { $identity = new Identity(); return $identity; }]]]); $this->documentManager = $manifest->getServiceManager()->get('testing.documentmanager'); }
public function setUp() { $manifest = new Manifest(['documents' => [__NAMESPACE__ . '\\TestAsset\\Document' => __DIR__ . '/TestAsset/Document'], 'extension_configs' => ['extension.state' => true, 'extension.accessControl' => true], 'document_manager' => 'testing.documentmanager', 'service_manager_config' => ['factories' => ['testing.documentmanager' => 'Sds\\DoctrineExtensions\\Test\\TestAsset\\DocumentManagerFactory', 'identity' => function () { $identity = new RoleAwareIdentity(); $identity->setIdentityName('toby')->addRole('writer'); return $identity; }]]]); $this->documentManager = $manifest->getServiceManager()->get('testing.documentmanager'); }
public function setUp() { $manifest = new Manifest(['service_manager_config' => ['factories' => ['identity' => function () { $identity = new RoleAwareIdentity(); $identity->setIdentityName('toby'); return $identity; }]]]); $this->identity = $manifest->getServiceManager()->get('identity'); }
public function setUp() { $manifest = new Manifest(['documents' => [__NAMESPACE__ . '\\TestAsset\\Document' => __DIR__ . '/TestAsset/Document'], 'extension_configs' => ['extension.validator' => true], 'document_manager' => 'testing.documentmanager', 'service_manager_config' => ['factories' => ['testing.documentmanager' => 'Sds\\DoctrineExtensions\\Test\\TestAsset\\DocumentManagerFactory']]]); $this->documentManager = $manifest->getServiceManager()->get('testing.documentmanager'); $eventManager = $this->documentManager->getEventManager(); $eventManager->addEventListener(Events::invalidCreate, $this); $eventManager->addEventListener(Events::invalidUpdate, $this); $this->calls = array(); }
protected function getManifestServiceManager($manifestName, $serviceLocator) { if (!isset($this->manifestServiceManagers[$manifestName])) { $config = $serviceLocator->get('config')['sds']['doctrineExtensions']['manifest']; if (isset($config[$manifestName])) { $manifestServiceManager = Manifest::createServiceManager($config[$manifestName]['service_manager_config']); $manifestServiceManager->setService('manifest', $config[$manifestName]); $manifestServiceManager->addPeeringServiceManager($serviceLocator); $this->manifestServiceManagers[$manifestName] = $manifestServiceManager; } else { return null; } } return $this->manifestServiceManagers[$manifestName]; }
public function setUp() { $this->path = __DIR__ . '/../../../../Dojo'; $manifest = new Manifest(['documents' => [__NAMESPACE__ . '\\TestAsset\\Document' => __DIR__ . '/TestAsset/Document'], 'extension_configs' => ['extension.dojo' => ['persist_to_file' => true, 'file_paths' => [['filter' => '', 'path' => $this->path]]]], 'document_manager' => 'testing.documentmanager', 'service_manager_config' => ['factories' => ['testing.documentmanager' => 'Sds\\DoctrineExtensions\\Test\\TestAsset\\DocumentManagerFactory']]]); $this->generator = $manifest->getServiceManager()->get('generator'); }
public function setUp() { $manifest = new Manifest(['documents' => [__NAMESPACE__ . '\\TestAsset\\Document' => __DIR__ . '/TestAsset/Document'], 'extension_configs' => ['extension.readonly' => true], 'document_manager' => 'testing.documentmanager', 'service_manager_config' => ['factories' => ['testing.documentmanager' => 'Sds\\DoctrineExtensions\\Test\\TestAsset\\DocumentManagerFactory']]]); $this->documentManager = $manifest->getServiceManager()->get('testing.documentmanager'); }