0

我从事有关解决云存储的 php 项目,例如 AWS EC2。

我尝试返回结果看起来像SplFileInfoDirectoryIterator

首先,我输入FileInfo模拟SplFileInfo

class FileInfo
{
    protected $file;

    public function __construct($file)
    {
        $this->file = $file;
    }

    public function getFilename()
    {
        return $this->file['filename'];
    }

    public function getSize()
    {
        return $this->file['size'];
    }

    ... other methods like SplFileInfo
}

二、我打字Directory模拟DirectoryIterator

class Directory extends FileInfo implements SeekableIterator
{
    protected $files;
    protected $position;

    public function __construct($files)
    {
        $this->files = $files;
    }

    public function current()
    {
        return new FileInfo($this->files[$this->position]);
    }

    ... and other methods required by SeekableIterator
}

那么问题是我应该在哪里等待FileInfo,在每个被调用时立即创建一个对象是否合适current()?还是立即打开所有对象__construct()

为什么DirectoryIterator实现SplFileInfo,只是为了代码提示?

4

0 回答 0