Puli\Repository\Resource\DirectoryResource::listChildren PHP Method

listChildren() public method

public listChildren ( )
    public function listChildren()
    {
        $children = new FilesystemResourceCollection();
        // Use attached repository if possible
        if ($this->getRepository()) {
            foreach ($this->getRepository()->listChildren($this->getRepositoryPath()) as $child) {
                $children[$child->getName()] = $child;
            }
            return $children;
        }
        $iterator = new RecursiveDirectoryIterator($this->getFilesystemPath(), RecursiveDirectoryIterator::CURRENT_AS_PATHNAME | RecursiveDirectoryIterator::SKIP_DOTS);
        // We can't use glob() here, because glob() doesn't list files starting
        // with "." by default
        foreach ($iterator as $path) {
            $children[basename($path)] = is_dir($path) ? new self($path) : new FileResource($path);
        }
        return $children;
    }

Usage Example

 public function testListChildrenDetached()
 {
     $resource = new DirectoryResource($this->fixturesDir . '/dir1');
     $children = $resource->listChildren();
     $this->assertCount(2, $children);
     $this->assertInstanceOf('Puli\\Repository\\Resource\\Collection\\FilesystemResourceCollection', $children);
     $this->assertEquals(new FileResource($this->fixturesDir . '/dir1/file1'), $children['file1']);
     $this->assertEquals(new FileResource($this->fixturesDir . '/dir1/file2'), $children['file2']);
 }