3 Commits
0.1.1 ... 0.2.0

Author SHA1 Message Date
1a560fad40 Lower flysystem dependency 2021-04-10 14:00:01 +02:00
b14d0b40a7 Update project 2021-04-10 13:53:17 +02:00
344324b47a Store contents to prevent reading file twice 2018-03-10 11:33:57 +01:00
3 changed files with 48 additions and 29 deletions

1
.gitignore vendored
View File

@@ -6,3 +6,4 @@ tmp/
.vs/ .vs/
.vscode/ .vscode/
coverage/ coverage/
.phpunit*

View File

@@ -10,21 +10,26 @@
} }
], ],
"require": { "require": {
"php": "^8.0",
"league/flysystem": "^1.0", "league/flysystem": "^1.0",
"psr/http-message": "^1.0", "psr/http-message": "^1.0",
"guzzlehttp/psr7": "^1.4" "guzzlehttp/psr7": "^1.4"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^7.0" "phpunit/phpunit": "^9.5"
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"IQParts\\Content\\": ["src"] "IQParts\\Content\\": [
"src"
]
} }
}, },
"autoload-dev": { "autoload-dev": {
"psr-4": { "psr-4": {
"IQParts\\ContentTest\\": ["test"] "IQParts\\ContentTest\\": [
"test"
]
} }
} }
} }

View File

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