aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/chillerlan/php-settings-container/src/SettingsContainerAbstract.php
diff options
context:
space:
mode:
authorMario <mario@mariovavti.com>2024-03-14 10:13:22 +0000
committerMario <mario@mariovavti.com>2024-03-14 10:13:22 +0000
commit55097c47c5534d4453f7494f8a1542f7beb4d588 (patch)
tree399f81bbd03fcb4bb713339d06512eee962ec8f6 /vendor/chillerlan/php-settings-container/src/SettingsContainerAbstract.php
parent97b82fc77b424d051b2a472ab2318fd768151bdd (diff)
downloadvolse-hubzilla-55097c47c5534d4453f7494f8a1542f7beb4d588.tar.gz
volse-hubzilla-55097c47c5534d4453f7494f8a1542f7beb4d588.tar.bz2
volse-hubzilla-55097c47c5534d4453f7494f8a1542f7beb4d588.zip
Revert "composer update and use the fixed streams php-jcs library until the floats issue will be fixed upstream. see here for reference https://codeberg.org/streams/streams/issues/151"
This reverts commit 6bf61dfa6b585db01b607a79bd64ec9c583a9c10.
Diffstat (limited to 'vendor/chillerlan/php-settings-container/src/SettingsContainerAbstract.php')
-rw-r--r--vendor/chillerlan/php-settings-container/src/SettingsContainerAbstract.php102
1 files changed, 12 insertions, 90 deletions
diff --git a/vendor/chillerlan/php-settings-container/src/SettingsContainerAbstract.php b/vendor/chillerlan/php-settings-container/src/SettingsContainerAbstract.php
index b54ca909c..6b7a1ecc2 100644
--- a/vendor/chillerlan/php-settings-container/src/SettingsContainerAbstract.php
+++ b/vendor/chillerlan/php-settings-container/src/SettingsContainerAbstract.php
@@ -7,13 +7,12 @@
* @copyright 2018 Smiley
* @license MIT
*/
-declare(strict_types=1);
namespace chillerlan\Settings;
-use InvalidArgumentException, ReflectionClass, ReflectionProperty;
-use function array_keys, get_object_vars, is_object, json_decode,
- json_encode, method_exists, property_exists, serialize, unserialize;
+use ReflectionClass, ReflectionProperty;
+
+use function get_object_vars, json_decode, json_encode, method_exists, property_exists;
use const JSON_THROW_ON_ERROR;
abstract class SettingsContainerAbstract implements SettingsContainerInterface{
@@ -21,7 +20,7 @@ abstract class SettingsContainerAbstract implements SettingsContainerInterface{
/**
* SettingsContainerAbstract constructor.
*/
- public function __construct(iterable|null $properties = null){
+ public function __construct(iterable $properties = null){
if(!empty($properties)){
$this->fromIterable($properties);
@@ -50,7 +49,7 @@ abstract class SettingsContainerAbstract implements SettingsContainerInterface{
/**
* @inheritdoc
*/
- public function __get(string $property):mixed{
+ public function __get(string $property){
if(!property_exists($this, $property) || $this->isPrivate($property)){
return null;
@@ -68,7 +67,7 @@ abstract class SettingsContainerAbstract implements SettingsContainerInterface{
/**
* @inheritdoc
*/
- public function __set(string $property, mixed $value):void{
+ public function __set(string $property, $value):void{
if(!property_exists($this, $property) || $this->isPrivate($property)){
return;
@@ -121,19 +120,13 @@ abstract class SettingsContainerAbstract implements SettingsContainerInterface{
* @inheritdoc
*/
public function toArray():array{
- $properties = [];
-
- foreach(array_keys(get_object_vars($this)) as $key){
- $properties[$key] = $this->__get($key);
- }
-
- return $properties;
+ return get_object_vars($this);
}
/**
* @inheritdoc
*/
- public function fromIterable(iterable $properties):static{
+ public function fromIterable(iterable $properties):SettingsContainerInterface{
foreach($properties as $key => $value){
$this->__set($key, $value);
@@ -145,14 +138,14 @@ abstract class SettingsContainerAbstract implements SettingsContainerInterface{
/**
* @inheritdoc
*/
- public function toJSON(int|null $jsonOptions = null):string{
- return json_encode($this, ($jsonOptions ?? 0));
+ public function toJSON(int $jsonOptions = null):string{
+ return json_encode($this, $jsonOptions ?? 0);
}
/**
* @inheritdoc
*/
- public function fromJSON(string $json):static{
+ public function fromJSON(string $json):SettingsContainerInterface{
$data = json_decode($json, true, 512, JSON_THROW_ON_ERROR);
return $this->fromIterable($data);
@@ -161,80 +154,9 @@ abstract class SettingsContainerAbstract implements SettingsContainerInterface{
/**
* @inheritdoc
*/
+ #[\ReturnTypeWillChange]
public function jsonSerialize():array{
return $this->toArray();
}
- /**
- * Returns a serialized string representation of the object in its current state (except static/readonly properties)
- *
- * @inheritdoc
- * @see \chillerlan\Settings\SettingsContainerInterface::toArray()
- */
- public function serialize():string{
- return serialize($this);
- }
-
- /**
- * Restores the data (except static/readonly properties) from the given serialized object to the current instance
- *
- * @inheritdoc
- * @see \chillerlan\Settings\SettingsContainerInterface::fromIterable()
- */
- public function unserialize(string $data):void{
- $obj = unserialize($data);
-
- if($obj === false || !is_object($obj)){
- throw new InvalidArgumentException('The given serialized string is invalid');
- }
-
- $reflection = new ReflectionClass($obj);
-
- if(!$reflection->isInstance($this)){
- throw new InvalidArgumentException('The unserialized object does not match the class of this container');
- }
-
- $properties = $reflection->getProperties(~(ReflectionProperty::IS_STATIC | ReflectionProperty::IS_READONLY));
-
- foreach($properties as $reflectionProperty){
- $this->{$reflectionProperty->name} = $reflectionProperty->getValue($obj);
- }
-
- }
-
- /**
- * Returns a serialized string representation of the object in its current state (except static/readonly properties)
- *
- * @inheritdoc
- * @see \chillerlan\Settings\SettingsContainerInterface::toArray()
- */
- public function __serialize():array{
-
- $properties = (new ReflectionClass($this))
- ->getProperties(~(ReflectionProperty::IS_STATIC | ReflectionProperty::IS_READONLY))
- ;
-
- $data = [];
-
- foreach($properties as $reflectionProperty){
- $data[$reflectionProperty->name] = $reflectionProperty->getValue($this);
- }
-
- return $data;
- }
-
- /**
- * Restores the data from the given array to the current instance
- *
- * @inheritdoc
- * @see \chillerlan\Settings\SettingsContainerInterface::fromIterable()
- */
- public function __unserialize(array $data):void{
-
- foreach($data as $key => $value){
- $this->{$key} = $value;
- }
-
- }
-
}