/** * Create service * * @param ServiceLocatorInterface $serviceLocator * @return mixed */ public function createService(ServiceLocatorInterface $serviceLocator) { $container = new Container(); /** @var Configuration $config */ $config = $serviceLocator->get('EnliteAdminConfiguration'); foreach ($config->getEntities() as $name => $options) { $entity = new Entity($name, $options); $entity->setServiceLocator($serviceLocator); $container->addEntity($entity); } return $container; }
/** * @param Entity $entity * @param Paginator $pagination */ public function createTable(Entity $entity, Paginator $pagination) { $table = new Table(); $table->createHead($entity->getOptions()->getFields()); $hydrator = new ClassMethods(); foreach ($pagination as $entity) { $row = $table->createRow(); foreach ($hydrator->extract($entity) as $key => $value) { $row->setValue($key, $value); } } return $table; }
/** * @param Entity $entity * @param $model * @return array */ public function editModel($entity, $model) { $form = $entity->getService()->getForm(); $form->bind($model); if ($this->getRequest()->isPost()) { $form->setData(array_merge($this->params()->fromPost(), $this->params()->fromFiles())); if ($form->isValid()) { $entity->getService()->save($model); $this->getEntityManager()->flush(); $this->flashMessenger()->addSuccessMessage('Saved'); $this->redirect()->toRoute('admin/entity/entity', ['entity' => $entity->getName()]); } } return $form; }
/** * @return EntityRepository */ public function getRepository() { if (null == $this->repository) { $this->repository = $this->getEntityManager()->getRepository($this->entity->getClassName()); } return $this->repository; }
protected function getEntity() { $entity = new Entity('user', new EntityOptions()); $entity->setService($this->getMockBuilder('EnliteAdmin\\Service\\DefaultEntityService')->disableOriginalConstructor()->getMock()); return $entity; }
/** * @param Entity $entity */ public function addEntity(Entity $entity) { $this->entities[$entity->getName()] = $entity; }