/** * @param ContainerInterface $container * @return DbAutodiscoveryModel * @throws ServiceNotCreatedException */ public function __invoke(ContainerInterface $container) { if (!$container->has('config')) { throw new ServiceNotCreatedException(sprintf('Cannot create %s service because config service is not present', DbAutodiscoveryModel::class)); } $instance = new DbAutodiscoveryModel($container->get('config')); $instance->setServiceLocator($container); return $instance; }
/** * Expected to return \Zend\ServiceManager\Config object or array to * seed such an object. * * @return array|\Zend\ServiceManager\Config */ public function getServiceConfig() { return array('factories' => array('ZF\\Apigility\\Admin\\Model\\AuthenticationModel' => function ($services) { if (!$services->has('Config')) { throw new ServiceNotCreatedException('Cannot create ZF\\Apigility\\Admin\\Model\\AuthenticationModel service ' . 'because Config service is not present'); } $config = $services->get('Config'); $writer = $services->get('ZF\\Configuration\\ConfigWriter'); $global = new ConfigResource($config, 'config/autoload/global.php', $writer); $local = new ConfigResource($config, 'config/autoload/local.php', $writer); $modules = $services->get('ZF\\Apigility\\Admin\\Model\\ModuleModel'); return new Model\AuthenticationModel($global, $local, $modules); }, 'ZF\\Apigility\\Admin\\Model\\AuthorizationModelFactory' => function ($services) { if (!$services->has('ZF\\Apigility\\Admin\\Model\\ModulePathSpec') || !$services->has('ZF\\Configuration\\ConfigResourceFactory') || !$services->has('ZF\\Apigility\\Admin\\Model\\ModuleModel')) { throw new ServiceNotCreatedException('ZF\\Apigility\\Admin\\Model\\AuthorizationModelFactory is missing ' . 'one or more dependencies from ZF\\Configuration'); } $moduleModel = $services->get('ZF\\Apigility\\Admin\\Model\\ModuleModel'); //$moduleUtils = $services->get('ZF\Configuration\ModuleUtils'); $modulePathSpec = $services->get('ZF\\Apigility\\Admin\\Model\\ModulePathSpec'); $configFactory = $services->get('ZF\\Configuration\\ConfigResourceFactory'); return new Model\AuthorizationModelFactory($modulePathSpec, $configFactory, $moduleModel); }, 'ZF\\Apigility\\Admin\\Model\\DbAutodiscoveryModel' => function ($services) { if (!$services->has('Config')) { throw new ServiceNotCreatedException('Cannot create ZF\\Apigility\\Admin\\Model\\DbAutodiscoveryModel service ' . 'because Config service is not present'); } $config = $services->get('Config'); $instance = new Model\DbAutodiscoveryModel($config); $instance->setServiceLocator($services); return $instance; }, 'ZF\\Apigility\\Admin\\Model\\ContentNegotiationModel' => function ($services) { if (!$services->has('Config')) { throw new ServiceNotCreatedException('Cannot create ZF\\Apigility\\Admin\\Model\\ContentNegotiationModel service ' . 'because Config service is not present'); } $config = $services->get('Config'); $writer = $services->get('ZF\\Configuration\\ConfigWriter'); $global = new ConfigResource($config, 'config/autoload/global.php', $writer); return new Model\ContentNegotiationModel($global); }, 'ZF\\Apigility\\Admin\\Model\\ContentNegotiationResource' => function ($services) { if (!$services->has('ZF\\Apigility\\Admin\\Model\\ContentNegotiationModel')) { throw new ServiceNotCreatedException('Cannot create ZF\\Apigility\\Admin\\Model\\ContentNegotiationResource service ' . 'because ZF\\Apigility\\Admin\\Model\\ContentNegotiationModel service is not present'); } $model = $services->get('ZF\\Apigility\\Admin\\Model\\ContentNegotiationModel'); return new Model\ContentNegotiationResource($model); }, 'ZF\\Apigility\\Admin\\Model\\DbAdapterModel' => function ($services) { if (!$services->has('Config')) { throw new ServiceNotCreatedException('Cannot create ZF\\Apigility\\Admin\\Model\\DbAdapterModel service ' . 'because Config service is not present'); } $config = $services->get('Config'); $writer = $services->get('ZF\\Configuration\\ConfigWriter'); $global = new ConfigResource($config, 'config/autoload/global.php', $writer); $local = new ConfigResource($config, 'config/autoload/local.php', $writer); return new Model\DbAdapterModel($global, $local); }, 'ZF\\Apigility\\Admin\\Model\\DbAdapterResource' => function ($services) { if (!$services->has('ZF\\Apigility\\Admin\\Model\\DbAdapterModel')) { throw new ServiceNotCreatedException('Cannot create ZF\\Apigility\\Admin\\Model\\DbAdapterResource service ' . 'because ZF\\Apigility\\Admin\\Model\\DbAdapterModel service is not present'); } $model = $services->get('ZF\\Apigility\\Admin\\Model\\DbAdapterModel'); return new Model\DbAdapterResource($model); }, 'ZF\\Apigility\\Admin\\Model\\DoctrineAdapterModel' => function ($services) { if (!$services->has('Config')) { throw new ServiceNotCreatedException('Cannot create ZF\\Apigility\\Admin\\Model\\DbAdapterModel service ' . 'because Config service is not present'); } $config = $services->get('Config'); $writer = $services->get('ZF\\Configuration\\ConfigWriter'); $global = new ConfigResource($config, 'config/autoload/doctrine.global.php', $writer); $local = new ConfigResource($config, 'config/autoload/doctrine.local.php', $writer); return new Model\DoctrineAdapterModel($global, $local); }, 'ZF\\Apigility\\Admin\\Model\\DoctrineAdapterResource' => function ($services) { if (!$services->has('ZF\\Apigility\\Admin\\Model\\DoctrineAdapterModel')) { throw new ServiceNotCreatedException('Cannot create ZF\\Apigility\\Admin\\Model\\DoctrineAdapterResource service ' . 'because ZF\\Apigility\\Admin\\Model\\DoctrineAdapterModel service is not present'); } $model = $services->get('ZF\\Apigility\\Admin\\Model\\DoctrineAdapterModel'); $modules = $services->get('ModuleManager'); $loadedModules = $modules->getLoadedModules(false); return new Model\DoctrineAdapterResource($model, $loadedModules); }, 'ZF\\Apigility\\Admin\\Model\\ModulePathSpec' => function ($services) { if (!$services->has('ZF\\Configuration\\ModuleUtils')) { throw new ServiceNotCreatedException('Cannot create ZF\\Apigility\\Admin\\Model\\ModulePathSpec service ' . 'because ZF\\Configuration\\ModuleUtils service is not present'); } $pathSpec = 'psr-0'; $path = '.'; if ($services->has('Config')) { $config = $services->get('Config'); if (!empty($config['zf-apigility-admin'])) { if (!empty($config['zf-apigility-admin']['path_spec'])) { $pathSpec = $config['zf-apigility-admin']['path_spec']; } if (isset($config['zf-apigility-admin']['module_path'])) { $path = $config['zf-apigility-admin']['module_path']; if (!is_dir($path)) { throw new ServiceNotCreatedException(sprintf('Invalid module path "%s"; does not exist', $path)); } } } } $modulePathSpec = new Model\ModulePathSpec($services->get('ZF\\Configuration\\ModuleUtils'), $pathSpec, $path); return $modulePathSpec; }, 'ZF\\Apigility\\Admin\\Model\\ModuleModel' => function ($services) { if (!$services->has('ModuleManager')) { throw new ServiceNotCreatedException('Cannot create ZF\\Apigility\\Admin\\Model\\ModuleModel service ' . 'because ModuleManager service is not present'); } $modules = $services->get('ModuleManager'); $restConfig = array(); $rpcConfig = array(); if ($services->has('Config')) { $config = $services->get('Config'); if (isset($config['zf-rest'])) { $restConfig = $config['zf-rest']; } if (isset($config['zf-rpc'])) { $rpcConfig = $config['zf-rpc']; } } return new Model\ModuleModel($modules, $restConfig, $rpcConfig); }, 'ZF\\Apigility\\Admin\\Model\\ModuleResource' => function ($services) { $moduleModel = $services->get('ZF\\Apigility\\Admin\\Model\\ModuleModel'); $modulePathSpec = $services->get('ZF\\Apigility\\Admin\\Model\\ModulePathSpec'); $listener = new Model\ModuleResource($moduleModel, $modulePathSpec); return $listener; }, 'ZF\\Apigility\\Admin\\Model\\RestServiceModelFactory' => function ($services) { if (!$services->has('ZF\\Apigility\\Admin\\Model\\ModulePathSpec') || !$services->has('ZF\\Configuration\\ConfigResourceFactory') || !$services->has('ZF\\Apigility\\Admin\\Model\\ModuleModel') || !$services->has('SharedEventManager')) { throw new ServiceNotCreatedException('ZF\\Apigility\\Admin\\Model\\RestServiceModelFactory is missing ' . 'one or more dependencies from ZF\\Configuration'); } $moduleModel = $services->get('ZF\\Apigility\\Admin\\Model\\ModuleModel'); $modulePathSpec = $services->get('ZF\\Apigility\\Admin\\Model\\ModulePathSpec'); $configFactory = $services->get('ZF\\Configuration\\ConfigResourceFactory'); $sharedEvents = $services->get('SharedEventManager'); // Wire DB-Connected fetch listener $sharedEvents->attach(__NAMESPACE__ . '\\Model\\RestServiceModel', 'fetch', 'ZF\\Apigility\\Admin\\Model\\DbConnectedRestServiceModel::onFetch'); $modules = $services->get('ModuleManager'); $loaded = $modules->getLoadedModules(false); if (isset($loaded['ZF\\Apigility\\Doctrine\\Admin'])) { // Wire Doctrine-Connected fetch listener $sharedEvents->attach(__NAMESPACE__ . '\\Model\\RestServiceModel', 'fetch', 'ZF\\Apigility\\Doctrine\\Admin\\Model\\DoctrineRestServiceModel::onFetch'); } return new Model\RestServiceModelFactory($modulePathSpec, $configFactory, $sharedEvents, $moduleModel); }, 'ZF\\Apigility\\Admin\\Model\\RpcServiceModelFactory' => function ($services) { if (!$services->has('ZF\\Apigility\\Admin\\Model\\ModulePathSpec') || !$services->has('ZF\\Configuration\\ConfigResourceFactory') || !$services->has('ZF\\Apigility\\Admin\\Model\\ModuleModel') || !$services->has('SharedEventManager')) { throw new ServiceNotCreatedException('ZF\\Apigility\\Admin\\Model\\RpcServiceModelFactory is missing ' . 'one or more dependencies from ZF\\Configuration'); } $moduleModel = $services->get('ZF\\Apigility\\Admin\\Model\\ModuleModel'); $modulePathSpec = $services->get('ZF\\Apigility\\Admin\\Model\\ModulePathSpec'); $configFactory = $services->get('ZF\\Configuration\\ConfigResourceFactory'); $sharedEvents = $services->get('SharedEventManager'); return new Model\RpcServiceModelFactory($modulePathSpec, $configFactory, $sharedEvents, $moduleModel); }, 'ZF\\Apigility\\Admin\\Model\\RestServiceResource' => function ($services) { if (!$services->has('ZF\\Apigility\\Admin\\Model\\RestServiceModelFactory')) { throw new ServiceNotCreatedException('ZF\\Apigility\\Admin\\Model\\RestServiceResource is missing one or more dependencies'); } if (!$services->has('ZF\\Apigility\\Admin\\Model\\InputFilterModel')) { throw new ServiceNotCreatedException('ZF\\Apigility\\Admin\\Model\\RestServiceResource is missing one or more dependencies'); } $factory = $services->get('ZF\\Apigility\\Admin\\Model\\RestServiceModelFactory'); $inputFilterModel = $services->get('ZF\\Apigility\\Admin\\Model\\InputFilterModel'); $documentationModel = $services->get('ZF\\Apigility\\Admin\\Model\\DocumentationModel'); return new Model\RestServiceResource($factory, $inputFilterModel, $documentationModel); }, 'ZF\\Apigility\\Admin\\Model\\RpcServiceResource' => function ($services) { if (!$services->has('ZF\\Apigility\\Admin\\Model\\RpcServiceModelFactory')) { throw new ServiceNotCreatedException('ZF\\Apigility\\Admin\\Model\\RpcServiceResource is missing RpcServiceModelFactory dependency'); } if (!$services->has('ZF\\Apigility\\Admin\\Model\\InputFilterModel')) { throw new ServiceNotCreatedException('ZF\\Apigility\\Admin\\Model\\RpcServiceResource is missing InputFilterModel dependency'); } if (!$services->has('ControllerManager')) { throw new ServiceNotCreatedException('ZF\\Apigility\\Admin\\Model\\RpcServiceResource is missing ControllerManager dependency'); } $factory = $services->get('ZF\\Apigility\\Admin\\Model\\RpcServiceModelFactory'); $inputFilterModel = $services->get('ZF\\Apigility\\Admin\\Model\\InputFilterModel'); $controllerManager = $services->get('ControllerManager'); $documentationModel = $services->get('ZF\\Apigility\\Admin\\Model\\DocumentationModel'); return new Model\RpcServiceResource($factory, $inputFilterModel, $controllerManager, $documentationModel); }, 'ZF\\Apigility\\Admin\\Model\\VersioningModelFactory' => function ($services) { if (!$services->has('ZF\\Configuration\\ConfigResourceFactory') || !$services->has('ZF\\Apigility\\Admin\\Model\\ModulePathSpec')) { throw new ServiceNotCreatedException('ZF\\Apigility\\Admin\\Model\\VersioningModelFactory is missing ' . 'one or more dependencies from ZF\\Configuration'); } $configFactory = $services->get('ZF\\Configuration\\ConfigResourceFactory'); $modulePathSpec = $services->get('ZF\\Apigility\\Admin\\Model\\ModulePathSpec'); return new Model\VersioningModelFactory($configFactory, $modulePathSpec); })); }