我从事有关解决云存储的 php 项目,例如 AWS EC2。
我尝试返回结果看起来像SplFileInfo和DirectoryIterator。
首先,我输入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,只是为了代码提示?