The PHP 8.0 update, introducing version 1.3.0.
continuous-integration/drone/push Build is passing Details

Mostly a compatibility update, with some general beautification.

The following important changes have been made:
This commit is contained in:
Abel Hoogeveen 2021-11-24 20:22:35 +01:00
parent 0b5a867bc7
commit b08688ccb0
Signed by: abelhooge
GPG Key ID: C540221690CBFFBA
6 changed files with 46 additions and 21 deletions

View File

@ -12,7 +12,7 @@ steps:
commands: commands:
- composer install - composer install
- name: dummyprovidertest - name: dummyprovidertest74
image: registry.i15.nl/i15/fuzephp:7.4-alpine image: registry.i15.nl/i15/fuzephp:7.4-alpine
commands: commands:
- docker-php-ext-enable xdebug - docker-php-ext-enable xdebug
@ -20,7 +20,7 @@ steps:
environment: environment:
OBJECTSTORAGE_PROVIDER: DummyProvider OBJECTSTORAGE_PROVIDER: DummyProvider
- name: fileprovidertest - name: fileprovidertest74
image: registry.i15.nl/i15/fuzephp:7.4-alpine image: registry.i15.nl/i15/fuzephp:7.4-alpine
commands: commands:
- docker-php-ext-enable xdebug - docker-php-ext-enable xdebug
@ -28,7 +28,7 @@ steps:
environment: environment:
OBJECTSTORAGE_PROVIDER: FileProvider OBJECTSTORAGE_PROVIDER: FileProvider
- name: redisprovidertest - name: redisprovidertest74
image: registry.i15.nl/i15/fuzephp:7.4-alpine image: registry.i15.nl/i15/fuzephp:7.4-alpine
commands: commands:
- docker-php-ext-enable xdebug - docker-php-ext-enable xdebug
@ -37,5 +37,30 @@ steps:
OBJECTSTORAGE_PROVIDER: RedisProvider OBJECTSTORAGE_PROVIDER: RedisProvider
OBJECTSTORAGE_REDIS_HOST: cache OBJECTSTORAGE_REDIS_HOST: cache
- name: dummyprovidertest80
image: registry.i15.nl/i15/fuzephp:8.0-alpine
commands:
- docker-php-ext-enable xdebug
- vendor/bin/phpunit -c test/phpunit.xml
environment:
OBJECTSTORAGE_PROVIDER: DummyProvider
- name: fileprovidertest80
image: registry.i15.nl/i15/fuzephp:8.0-alpine
commands:
- docker-php-ext-enable xdebug
- vendor/bin/phpunit -c test/phpunit.xml
environment:
OBJECTSTORAGE_PROVIDER: FileProvider
- name: redisprovidertest80
image: registry.i15.nl/i15/fuzephp:8.0-alpine
commands:
- docker-php-ext-enable xdebug
- vendor/bin/phpunit -c test/phpunit.xml
environment:
OBJECTSTORAGE_PROVIDER: RedisProvider
OBJECTSTORAGE_REDIS_HOST: cache
image_pull_secrets: image_pull_secrets:
- dockerconfig - dockerconfig

View File

@ -1,16 +1,15 @@
{ {
"name": "fuzeworks/objectstorage", "name": "fuzeworks/objectstorage",
"minimum-stability": "stable",
"license": ["MIT"], "license": ["MIT"],
"authors": [ "authors": [
{ {
"name": "Abel Hoogeveen", "name": "Abel Hoogeveen",
"email": "abel@i15.nl" "homepage": "https://i15.nl"
} }
], ],
"require": { "require": {
"php": ">=7.4.0", "php": ">=7.4.0",
"fuzeworks/core": "~1.2", "fuzeworks/core": "~1.3.0",
"psr/simple-cache": "1.0.1" "psr/simple-cache": "1.0.1"
}, },
"suggest": { "suggest": {
@ -18,7 +17,7 @@
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^9", "phpunit/phpunit": "^9",
"fuzeworks/tracycomponent": "~1.2" "fuzeworks/tracycomponent": "~1.3.0"
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {

View File

@ -35,6 +35,8 @@
namespace FuzeWorks\ObjectStorage\Exception; namespace FuzeWorks\ObjectStorage\Exception;
class ObjectStorageException extends \FuzeWorks\Exception\CoreException use FuzeWorks\Exception\CoreException;
class ObjectStorageException extends CoreException
{ {
} }

View File

@ -65,7 +65,7 @@ class ObjectStorageCache implements CacheInterface
return is_null($res) ? $default : $res; return is_null($res) ? $default : $res;
} }
public function set($key, $value, $ttl = null) public function set($key, $value, $ttl = null): bool
{ {
$meta = [ $meta = [
'time' => time(), 'time' => time(),
@ -75,12 +75,12 @@ class ObjectStorageCache implements CacheInterface
return $this->provider->save('fwcache_' . $key, $value, $meta); return $this->provider->save('fwcache_' . $key, $value, $meta);
} }
public function delete($key) public function delete($key): bool
{ {
return $this->provider->deleteItem('fwcache_' . $key); return $this->provider->deleteItem('fwcache_' . $key);
} }
public function clear() public function clear(): bool
{ {
// Fetch the index set // Fetch the index set
$index = $this->provider->getIndex(); $index = $this->provider->getIndex();
@ -93,7 +93,7 @@ class ObjectStorageCache implements CacheInterface
return true; return true;
} }
public function getMultiple($keys, $default = null) public function getMultiple($keys, $default = null): array
{ {
$out = []; $out = [];
foreach ($keys as $key) foreach ($keys as $key)
@ -104,7 +104,7 @@ class ObjectStorageCache implements CacheInterface
return $out; return $out;
} }
public function setMultiple($values, $ttl = null) public function setMultiple($values, $ttl = null): bool
{ {
foreach ($values as $key => $value) foreach ($values as $key => $value)
$this->set($key, $value, $ttl); $this->set($key, $value, $ttl);
@ -112,7 +112,7 @@ class ObjectStorageCache implements CacheInterface
return true; return true;
} }
public function deleteMultiple($keys) public function deleteMultiple($keys): bool
{ {
foreach ($keys as $key) foreach ($keys as $key)
$this->delete($key); $this->delete($key);
@ -120,7 +120,7 @@ class ObjectStorageCache implements CacheInterface
return true; return true;
} }
public function has($key) public function has($key): bool
{ {
$this->testTTL($key); $this->testTTL($key);
return $this->provider->hasItem('fwcache_' . $key); return $this->provider->hasItem('fwcache_' . $key);

View File

@ -37,7 +37,6 @@ namespace FuzeWorks\ObjectStorage\Provider;
use FuzeWorks\ObjectStorage\Exception\ObjectStorageException; use FuzeWorks\ObjectStorage\Exception\ObjectStorageException;
use FuzeWorks\ObjectStorage\iObjectStorageProvider; use FuzeWorks\ObjectStorage\iObjectStorageProvider;
use FuzeWorks\Core; use FuzeWorks\Core;
use Traversable;
/** /**
* FileProvider * FileProvider
@ -83,7 +82,7 @@ class FileProvider implements iObjectStorageProvider
public function init(array $providerConfig): bool public function init(array $providerConfig): bool
{ {
// First load the directory from the providerConfig // First load the directory from the providerConfig
$directory = isset($providerConfig['storage_directory']) ? $providerConfig['storage_directory'] : null; $directory = $providerConfig['storage_directory'] ?? null;
// Check if the directory exists // Check if the directory exists
if (!file_exists($directory) || !is_dir($directory)) if (!file_exists($directory) || !is_dir($directory))
@ -236,12 +235,11 @@ class FileProvider implements iObjectStorageProvider
* *
* @param string $path File path * @param string $path File path
* @param string $data Data to write * @param string $data Data to write
* @param string $mode fopen() mode (default: 'wb')
* @return bool * @return bool
*/ */
private function write_file(string $path, string $data, string $mode = 'wb'): bool private function write_file(string $path, string $data): bool
{ {
if ( ! $fp = @fopen($path, $mode)) if ( ! $fp = @fopen($path, 'wb'))
return false; return false;
flock($fp, LOCK_EX); flock($fp, LOCK_EX);

View File

@ -36,6 +36,7 @@
require_once(dirname(__DIR__) . '/vendor/autoload.php'); require_once(dirname(__DIR__) . '/vendor/autoload.php');
use FuzeWorks\Configurator; use FuzeWorks\Configurator;
use FuzeWorks\ObjectStorage\ObjectStorageComponent;
use FuzeWorks\Priority; use FuzeWorks\Priority;
$configurator = new Configurator(); $configurator = new Configurator();
@ -48,7 +49,7 @@ $configurator->setLogDirectory(__DIR__ . '/temp');
$configurator->setTimeZone('Europe/Amsterdam'); $configurator->setTimeZone('Europe/Amsterdam');
// And the star of the show: ObjectStorageComponent // And the star of the show: ObjectStorageComponent
$configurator->addComponent(new \FuzeWorks\ObjectStorage\ObjectStorageComponent()); $configurator->addComponent(new ObjectStorageComponent());
// Add the test config file // Add the test config file
$configurator->addDirectory(dirname(__FILE__), 'config', Priority::HIGH); $configurator->addDirectory(dirname(__FILE__), 'config', Priority::HIGH);