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

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

public create ( ) : ResourceNameCollection
Результат ApiPlatform\Core\Metadata\Resource\ResourceNameCollection
    public function create() : ResourceNameCollection
    {
        $classes = [];
        $includedFiles = [];
        if ($this->decorated) {
            foreach ($this->decorated->create() as $resourceClass) {
                $classes[$resourceClass] = true;
            }
        }
        foreach ($this->paths as $path) {
            $iterator = new \RegexIterator(new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($path, \FilesystemIterator::SKIP_DOTS), \RecursiveIteratorIterator::LEAVES_ONLY), '/^.+\\.php$/i', \RecursiveRegexIterator::GET_MATCH);
            foreach ($iterator as $file) {
                $sourceFile = $file[0];
                if (!preg_match('(^phar:)i', $sourceFile)) {
                    $sourceFile = realpath($sourceFile);
                }
                require_once $sourceFile;
                $includedFiles[$sourceFile] = true;
            }
        }
        $declared = get_declared_classes();
        foreach ($declared as $className) {
            $reflectionClass = new \ReflectionClass($className);
            $sourceFile = $reflectionClass->getFileName();
            if (isset($includedFiles[$sourceFile]) && $this->reader->getClassAnnotation($reflectionClass, ApiResource::class)) {
                $classes[$className] = true;
            }
        }
        return new ResourceNameCollection(array_keys($classes));
    }
AnnotationResourceNameCollectionFactory