Inheritance: extends ZF\Rest\AbstractResourceListener
Exemplo n.º 1
0
 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);
         return new Model\AuthenticationModel($global, $local);
     }, 'ZF\\Apigility\\Admin\\Model\\AuthorizationModelFactory' => function ($services) {
         if (!$services->has('ZF\\Configuration\\ModuleUtils') || !$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');
         $configFactory = $services->get('ZF\\Configuration\\ConfigResourceFactory');
         return new Model\AuthorizationModelFactory($moduleUtils, $configFactory, $moduleModel);
     }, '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\\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');
         $listener = new Model\ModuleResource($moduleModel);
         if ($services->has('Config')) {
             $config = $services->get('Config');
             if (isset($config['zf-apigility-admin'])) {
                 if (isset($config['zf-apigility-admin']['module_path'])) {
                     $listener->setModulePath($config['zf-apigility-admin']['module_path']);
                 }
             }
         }
         return $listener;
     }, 'ZF\\Apigility\\Admin\\Model\\RestServiceModelFactory' => function ($services) {
         if (!$services->has('ZF\\Configuration\\ModuleUtils') || !$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');
         $moduleUtils = $services->get('ZF\\Configuration\\ModuleUtils');
         $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');
         return new Model\RestServiceModelFactory($moduleUtils, $configFactory, $sharedEvents, $moduleModel);
     }, 'ZF\\Apigility\\Admin\\Model\\RpcServiceModelFactory' => function ($services) {
         if (!$services->has('ZF\\Configuration\\ModuleUtils') || !$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');
         $moduleUtils = $services->get('ZF\\Configuration\\ModuleUtils');
         $configFactory = $services->get('ZF\\Configuration\\ConfigResourceFactory');
         $sharedEvents = $services->get('SharedEventManager');
         return new Model\RpcServiceModelFactory($moduleUtils, $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\\Configuration\\ModuleUtils')) {
             throw new ServiceNotCreatedException('ZF\\Apigility\\Admin\\Model\\VersioningModelFactory is missing one or more dependencies from ZF\\Configuration');
         }
         $configFactory = $services->get('ZF\\Configuration\\ConfigResourceFactory');
         $moduleUtils = $services->get('ZF\\Configuration\\ModuleUtils');
         return new Model\VersioningModelFactory($configFactory, $moduleUtils);
     }));
 }
 public function testFetchModuleInjectsVersions()
 {
     $moduleName = uniqid('Foo');
     $module = $this->resource->create(array('name' => $moduleName));
     $moduleClass = $module->getNamespace() . '\\Module';
     $r = new ReflectionClass($moduleClass);
     $path = dirname($r->getFileName());
     mkdir(sprintf('%s/V2', $path), 0775, true);
     mkdir(sprintf('%s/V3', $path), 0775, true);
     $modules = array($moduleName => new $moduleClass());
     $moduleManager = $this->getMockBuilder('Zend\\ModuleManager\\ModuleManager')->disableOriginalConstructor()->getMock();
     $moduleManager->expects($this->any())->method('getLoadedModules')->will($this->returnValue($modules));
     $model = new ModuleModel($moduleManager, array(), array());
     $resource = new ModuleResource($model);
     $module = $resource->fetch($moduleName);
     $this->assertInstanceOf('ZF\\Apigility\\Admin\\Model\\ModuleEntity', $module);
     $this->assertEquals(array(1, 2, 3), $module->getVersions());
 }