我从事有关解决云存储的 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
,只是为了代码提示?