public function getArrayCopy() { $data = parent::getArrayCopy(); $data['hydrator_name'] = $this->hydratorName; $data['object_manager'] = $this->objectManager; $data['by_value'] = $this->byValue; $data['strategies'] = $this->hydratorStrategies; $data['use_generated_hydrator'] = $this->useGeneratedHydrator; return $data; }
public function getArrayCopy() { $data = parent::getArrayCopy(); $data['adapter_name'] = $this->adapterName; $data['hydrator_name'] = $this->hydratorName; $data['table_name'] = $this->tableName; $data['table_service'] = $this->tableService; if (empty($data['service_name'])) { $data['service_name'] = $this->tableName; } return $data; }
/** * @param RestServiceEntity $service */ protected function injectDocumentation(RestServiceEntity $service) { $documentation = $this->documentationModel->fetchDocumentation($this->moduleName, $service->controllerServiceName); if (!$documentation) { return; } $entity = new HalEntity($documentation, 'documentation'); $service->exchangeArray(['documentation' => $entity]); }
public function getArrayCopy() { $return = parent::getArrayCopy(); $return['service_name'] = $this->serviceName; return $return; }
/** * Merge the content negotiation configuration for the given controller * service into the REST metadata * * @param string $controllerServiceName * @param RestServiceEntity $metadata * @param array $config */ protected function mergeContentNegotiationConfig($controllerServiceName, RestServiceEntity $metadata, array $config) { if (!isset($config['zf-content-negotiation'])) { return; } $config = $config['zf-content-negotiation']; if (isset($config['controllers'][$controllerServiceName])) { $metadata->exchangeArray(['selector' => $config['controllers'][$controllerServiceName]]); } if (isset($config['accept_whitelist'][$controllerServiceName])) { $metadata->exchangeArray(['accept_whitelist' => $config['accept_whitelist'][$controllerServiceName]]); } if (isset($config['content_type_whitelist'][$controllerServiceName])) { $metadata->exchangeArray(['content_type_whitelist' => $config['content_type_whitelist'][$controllerServiceName]]); } }
/** * @group 170 */ public function testUpdateRestWillUpdateCollectionName() { $details = $this->getCreationPayload(); $original = $this->codeRest->createService($details); $options = ['collection_name' => 'foo_bars']; $patch = new RestServiceEntity(); $patch->exchangeArray($options); $this->codeRest->updateRestConfig($original, $patch); $config = (include __DIR__ . '/TestAsset/module/BarConf/config/module.config.php'); $this->assertArrayHasKey('zf-rest', $config); $this->assertArrayHasKey($original->controllerServiceName, $config['zf-rest']); $test = $config['zf-rest'][$original->controllerServiceName]; foreach ($options as $key => $value) { $this->assertEquals($value, $test[$key]); } }
/** * @group 166 */ public function testOnFetchWillRetainResourceClassIfEventFetchFlagIsFalse() { $originalData = array( 'controller_service_name' => 'BarConf\Rest\Barbaz\Controller', 'resource_class' => 'BarConf\Rest\Barbaz\BarbazResource', 'route_name' => 'bar-conf.rest.barbaz', 'route_match' => '/api/barbaz', 'entity_class' => 'BarConf\Rest\Barbaz\BarbazEntity', ); $entity = new RestServiceEntity(); $entity->exchangeArray($originalData); $config = array( 'zf-apigility' => array('db-connected' => array( 'BarConf\Rest\Barbaz\BarbazResource' => array( 'adapter_name' => 'Db\Barbaz', 'table_name' => 'barbaz', 'hydrator_name' => 'ObjectProperty', ), ))); $event = new Event(); $event->setParam('entity', $entity); $event->setParam('config', $config); $event->setParam('fetch', false); $result = $this->model->onFetch($event); $this->assertInstanceOf('ZF\Apigility\Admin\Model\DbConnectedRestServiceEntity', $result); $this->assertEquals('BarConf\Rest\Barbaz\BarbazResource', $result->resourceClass); $asArray = $result->getArrayCopy(); $this->assertArrayHasKey('resource_class', $asArray); $this->assertEquals('BarConf\Rest\Barbaz\BarbazResource', $asArray['resource_class']); }
/** * @param Model\RestServiceEntity|Model\RpcServiceEntity $entity * @param EventInterface $e * @return void */ private function injectServiceCollectionRelationalLinks($entity, EventInterface $e) { $entity->exchangeArray(['controller_service_name' => str_replace('\\', '-', $entity->controllerServiceName)]); $module = $this->routeMatch->getParam('name'); $service = $entity->controllerServiceName; $type = $this->getServiceType($service); $halEntity = new Entity($entity, $service); $links = $halEntity->getLinks(); // Need to inject the self relational link, as otherwise the HAL plugin // sees we have links, and does not inject one. $links->add(Link::factory(['rel' => 'self', 'route' => ['name' => sprintf('zf-apigility/api/module/%s-service', $type), 'params' => ['name' => $module, 'controller_service_name' => $service]]])); // Add the input_filter relational link $links->add(Link::factory(['rel' => 'input_filter', 'route' => ['name' => sprintf('zf-apigility/api/module/%s-service/input-filter', $type), 'params' => ['name' => $module, 'controller_service_name' => $service]]])); // Add the documentation relational link $links->add(Link::factory(['rel' => 'documentation', 'route' => ['name' => sprintf('zf-apigility/api/module/%s-service/doc', $type), 'params' => ['name' => $module, 'controller_service_name' => $service]]])); $e->setParam('entity', $halEntity); }