예제 #1
0
 /**
  * {@inheritdoc}
  */
 public function process(ContextInterface $context)
 {
     /** @var CollectPublicResourcesContext $context */
     $resources = $context->getResult();
     $entities = $this->dictionaryProvider->getSupportedEntityClasses();
     foreach ($entities as $entityClass) {
         $resources->add(new PublicResource($entityClass));
     }
 }
 /**
  * @return array [[entity plural alias, url safe class name], ...]
  */
 protected function getSupportedEntities()
 {
     if (null === $this->supportedEntities) {
         $entities = $this->dictionaryProvider->getSupportedEntityClasses();
         $this->supportedEntities = [];
         foreach ($entities as $className) {
             $this->supportedEntities[] = [$this->entityAliasResolver->getPluralAlias($className), $this->entityClassNameHelper->getUrlSafeClassName($className)];
         }
     }
     return $this->supportedEntities;
 }
 /**
  * {@inheritdoc}
  */
 public function resolve(Route $route, RouteCollectionAccessor $routes)
 {
     if ($route->getOption('group') !== self::ROUTE_GROUP) {
         return;
     }
     if ($this->hasAttribute($route, self::ENTITY_PLACEHOLDER)) {
         $entities = $this->dictionaryProvider->getSupportedEntityClasses();
         if (!empty($entities)) {
             $entities = $this->adjustRoutes($route, $routes, $entities);
             if (!empty($entities)) {
                 $route->setRequirement(self::ENTITY_ATTRIBUTE, implode('|', $entities));
             }
         }
     }
 }
 /**
  * {@inheritdoc}
  */
 public function getListQueryBuilder($limit = 10, $page = 1, $criteria = [], $orderBy = null, $joins = [])
 {
     $qb = $this->dictionaryProvider->getValueListQueryBuilder($this->class);
     if ($qb instanceof QueryBuilder) {
         if ($limit >= 0) {
             $qb->setMaxResults($limit);
             $qb->setFirstResult($this->getOffset($page, $limit));
         }
         if ($orderBy) {
             $qb->orderBy($orderBy);
         }
     } elseif (null !== $qb) {
         throw new \RuntimeException(sprintf('Expected instance of Doctrine\\ORM\\QueryBuilder, "%s" given.', is_object($qb) ? get_class($qb) : gettype($qb)));
     }
     return $qb;
 }
 /**
  * @dataProvider entityProvider
  */
 public function testGetSupportedEntityClasses($supported1, $supported2, $expected)
 {
     $this->provider1->expects($this->once())->method('getSupportedEntityClasses')->willReturn($supported1);
     $this->provider2->expects($this->once())->method('getSupportedEntityClasses')->willReturn($supported2);
     $this->assertEquals($expected, $this->chainProvider->getSupportedEntityClasses());
 }