Наследование: extends AbstractAutodiscoveryModel
 public function discoverAction()
 {
     $module = $this->params()->fromRoute('name', false);
     $version = $this->params()->fromRoute('version', false);
     $adapter_name = urldecode($this->params()->fromRoute('adapter_name', false));
     $data = $this->model->fetchColumns($module, $version, $adapter_name);
     return new ViewModel(['payload' => $data]);
 }
 /**
  * @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;
 }
Пример #3
0
 /**
  * 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);
     }));
 }