예제 #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));
             }
         }
     }
 }
 /**
  * @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());
 }