Store contents to prevent reading file twice

This commit is contained in:
2018-03-10 11:33:57 +01:00
parent fe87df07fe
commit 344324b47a

View File

@@ -48,6 +48,10 @@ final class File extends Item
* @var bool
*/
private $isEditable;
/**
* @var string
*/
private $content = null;
/**
* PublicFile constructor.
@@ -82,7 +86,15 @@ final class File extends Item
$parent = substr($this->path, 0, $parentSep);
} else $parent = '/';
$this->parent = base64_encode($parent);
if ($editable[$extension] ?? false && $file->read() !== false) {
$isEditable = $editable[$extension] ?? false;
$content = false;
if ($isEditable) {
$content = $file->read();
}
if ($isEditable && $content !== false) {
$this->content = $content;
$this->isEditable = true;
} else {
$this->isEditable = false;
@@ -175,6 +187,7 @@ final class File extends Item
*/
public function getContents()
{
if ($this->content !== null) return $this->content;
return $this->file->read();
}