ApiPlatform\Core\Metadata\Resource\Factory\AnnotationResourceMetadataFactory::create PHP Метод

create() публичный метод

public create ( string $resourceClass ) : ResourceMetadata
$resourceClass string
Результат ApiPlatform\Core\Metadata\Resource\ResourceMetadata
    public function create(string $resourceClass) : ResourceMetadata
    {
        $parentResourceMetadata = null;
        if ($this->decorated) {
            try {
                $parentResourceMetadata = $this->decorated->create($resourceClass);
            } catch (ResourceClassNotFoundException $resourceNotFoundException) {
                // Ignore not found exception from decorated factories
            }
        }
        try {
            $reflectionClass = new \ReflectionClass($resourceClass);
        } catch (\ReflectionException $reflectionException) {
            return $this->handleNotFound($parentResourceMetadata, $resourceClass);
        }
        $resourceAnnotation = $this->reader->getClassAnnotation($reflectionClass, ApiResource::class);
        if (null === $resourceAnnotation) {
            return $this->handleNotFound($parentResourceMetadata, $resourceClass);
        }
        return $this->createMetadata($resourceAnnotation, $parentResourceMetadata);
    }

Usage Example

 /**
  * @dataProvider getCreateDependencies
  */
 public function testCreate(ProphecyInterface $reader, ProphecyInterface $decorated = null, $expectedShortName, $expectedDescription)
 {
     $factory = new AnnotationResourceMetadataFactory($reader->reveal(), $decorated ? $decorated->reveal() : null);
     $metadata = $factory->create(Dummy::class);
     $this->assertEquals($expectedShortName, $metadata->getShortName());
     $this->assertEquals($expectedDescription, $metadata->getDescription());
     $this->assertEquals('http://example.com', $metadata->getIri());
     $this->assertEquals(['foo' => ['bar' => true]], $metadata->getItemOperations());
     $this->assertEquals(['baz' => ['tab' => false]], $metadata->getCollectionOperations());
     $this->assertEquals(['a' => 1], $metadata->getAttributes());
 }