5 Commits

4 changed files with 56 additions and 29 deletions

1
.gitignore vendored
View File

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

View File

@@ -1,5 +1,9 @@
# IQParts/Content
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/IQParts/content/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/IQParts/content/?branch=master)
[![Code Coverage](https://scrutinizer-ci.com/g/IQParts/content/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/IQParts/content/?branch=master)
[![Build Status](https://scrutinizer-ci.com/g/IQParts/content/badges/build.png?b=master)](https://scrutinizer-ci.com/g/IQParts/content/build-status/master)
### Installation
`composer require iqparts/content`

View File

@@ -1,30 +1,35 @@
{
"name": "iqparts/content",
"description": "Small wrapper around League/Flysystem with an added AssetResolver for resolving files as responses.",
"type": "library",
"license": "MIT",
"authors": [
{
"name": "Mèir Noordermeer",
"email": "meirnoordermeer@me.com"
}
],
"require": {
"league/flysystem": "^1.0",
"psr/http-message": "^1.0",
"guzzlehttp/psr7": "^1.4"
},
"require-dev": {
"phpunit/phpunit": "^7.0"
},
"autoload": {
"psr-4": {
"IQParts\\Content\\": ["src"]
}
},
"autoload-dev": {
"psr-4": {
"IQParts\\ContentTest\\": ["test"]
}
"name": "iqparts/content",
"description": "Small wrapper around League/Flysystem with an added AssetResolver for resolving files as responses.",
"type": "library",
"license": "MIT",
"authors": [
{
"name": "Mèir Noordermeer",
"email": "meirnoordermeer@me.com"
}
],
"require": {
"php": "^8.0",
"league/flysystem": "^1.0",
"psr/http-message": "^1.0",
"guzzlehttp/psr7": "^1.4"
},
"require-dev": {
"phpunit/phpunit": "^9.5"
},
"autoload": {
"psr-4": {
"IQParts\\Content\\": [
"src"
]
}
},
"autoload-dev": {
"psr-4": {
"IQParts\\ContentTest\\": [
"test"
]
}
}
}

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,19 @@ final class File extends Item
$parent = substr($this->path, 0, $parentSep);
} else $parent = '/';
$this->parent = base64_encode($parent);
$this->isEditable = $editable[$extension] ?? 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;
}
}
}
@@ -171,6 +187,7 @@ final class File extends Item
*/
public function getContents()
{
if ($this->content !== null) return $this->content;
return $this->file->read();
}