/** * __invoke * * Create the entity service. * * @param EntityServiceManager $entityServiceManager The entity service manager. * @param string $name The name of the service to create. * @param string $requestedName The requested name of the service to create. * * @return EntityServiceInterface */ public function __invoke(EntityServiceManager $entityServiceManager, $name, $requestedName) { /** @var ServiceManager $serviceManager */ $serviceManager = $entityServiceManager->getServiceLocator(); $options = $this->getEntityServiceOptions($serviceManager, $requestedName); $entityManager = $this->getObjectManager($serviceManager, $options->getObjectManagerName(), $requestedName); $repository = $this->getRepository($entityManager, $options->getRepositoryName(), $requestedName); // Create the service $entityService = $this->createObject($serviceManager, $options->getClassName(), $repository, $this->getFormElementProvider($serviceManager, $options->getFormProviderName()), $this->getViewTemplateProvider($serviceManager, $options->getViewTemplateProviderName(), $requestedName), $options); $this->attachStrategies($serviceManager, $entityService, $options->getStrategies()); //$searchService = $options->getSearchServiceName(); //if (! empty($searchService) && $entityService instanceof SearchableInterface) { // $entityService->setSearchService($this->getSearchService($serviceManager, $repository, $searchService)); //} return $entityService; }
/** * createService * * Create the entity service manager * * @param ServiceManager $serviceManager * @param string $name * @param string $requestedName * * @return EntityServiceManager */ public function __invoke(ServiceManager $serviceManager, $name, $requestedName) { $entityServiceManager = new EntityServiceManager(); $entityServiceManager->setServiceLocator($serviceManager); return $entityServiceManager; }