diff --git a/DataStorage/Cache/Connection/CacheValueType.php b/DataStorage/Cache/Connection/CacheValueType.php index 71b154c7e..e1e622eb0 100755 --- a/DataStorage/Cache/Connection/CacheValueType.php +++ b/DataStorage/Cache/Connection/CacheValueType.php @@ -34,7 +34,7 @@ abstract class CacheValueType extends Enum public const _ARRAY = 2; /* Data is array */ - public const _SERIALIZABLE = 3; /* Data implements \Serializable */ + public const _SERIALIZABLE = 3; /* Data implements __serialize and __unserialize() */ public const _FLOAT = 4; /* Data is float */ diff --git a/DataStorage/Cache/Connection/ConnectionAbstract.php b/DataStorage/Cache/Connection/ConnectionAbstract.php index 4ba8a59c2..2f75b2aba 100755 --- a/DataStorage/Cache/Connection/ConnectionAbstract.php +++ b/DataStorage/Cache/Connection/ConnectionAbstract.php @@ -164,8 +164,6 @@ abstract class ConnectionAbstract implements ConnectionInterface return CacheValueType::_ARRAY; } elseif ($value === null) { return CacheValueType::_NULL; - } elseif ($value instanceof \Serializable) { - return CacheValueType::_SERIALIZABLE; } elseif ($value instanceof \JsonSerializable) { return CacheValueType::_JSONSERIALIZABLE; } diff --git a/DataStorage/Cache/Connection/FileCache.php b/DataStorage/Cache/Connection/FileCache.php index ca72214f9..87c5f8135 100644 --- a/DataStorage/Cache/Connection/FileCache.php +++ b/DataStorage/Cache/Connection/FileCache.php @@ -27,7 +27,7 @@ use phpOMS\System\File\Local\File; * This implementation uses the hard drive as cache by saving data to the disc as text files. * The text files follow a defined strucuture which allows this implementation to parse the cached data. * - * Allowed datatypes: null, int, bool, float, string, \DateTime, \JsonSerializable, \Serializable + * Allowed datatypes: null, int, bool, float, string, \DateTime, \JsonSerializable * File structure: * data type (1 byte) * delimiter (1 byte) diff --git a/DataStorage/Cache/Connection/MemCached.php b/DataStorage/Cache/Connection/MemCached.php index dc0bd4453..17f3e8a70 100644 --- a/DataStorage/Cache/Connection/MemCached.php +++ b/DataStorage/Cache/Connection/MemCached.php @@ -94,7 +94,7 @@ final class MemCached extends ConnectionAbstract return; } - if (!(\is_scalar($value) || $value === null || \is_array($value) || $value instanceof \JsonSerializable || $value instanceof \Serializable)) { + if (!(\is_scalar($value) || $value === null || \is_array($value) || $value instanceof \JsonSerializable) { throw new \InvalidArgumentException(); } @@ -110,7 +110,7 @@ final class MemCached extends ConnectionAbstract return false; } - if (!(\is_scalar($value) || $value === null || \is_array($value) || $value instanceof \JsonSerializable || $value instanceof \Serializable)) { + if (!(\is_scalar($value) || $value === null || \is_array($value) || $value instanceof \JsonSerializable) { throw new \InvalidArgumentException(); } diff --git a/DataStorage/Database/Query/Builder.php b/DataStorage/Database/Query/Builder.php index 3f9ebe2bc..d4664f282 100644 --- a/DataStorage/Database/Query/Builder.php +++ b/DataStorage/Database/Query/Builder.php @@ -1454,8 +1454,6 @@ class Builder extends BuilderAbstract return $column; } elseif ($column instanceof Column) { return $column->getColumn(); - } elseif ($column instanceof \Serializable) { - return $column->serialize(); } elseif ($column instanceof self) { return \md5($column->toSql()); } diff --git a/DataStorage/Database/Query/Grammar/Grammar.php b/DataStorage/Database/Query/Grammar/Grammar.php index aa1f18adf..25ce6fc1e 100644 --- a/DataStorage/Database/Query/Grammar/Grammar.php +++ b/DataStorage/Database/Query/Grammar/Grammar.php @@ -359,8 +359,6 @@ class Grammar extends GrammarAbstract $encoded = \json_encode($value); return $encoded ? $encoded : 'NULL'; - } elseif ($value instanceof \Serializable) { - return $value->serialize(); } elseif ($value instanceof Parameter) { return $value->__toString(); } else { diff --git a/Math/Matrix/Matrix.php b/Math/Matrix/Matrix.php index 0fd51886b..4846bc398 100644 --- a/Math/Matrix/Matrix.php +++ b/Math/Matrix/Matrix.php @@ -736,7 +736,7 @@ class Matrix implements \ArrayAccess, \Iterator /** * {@inheritdoc} */ - public function offsetExists($offset) : bool + public function offsetExists(mixed $offset) : bool { $row = (int) ($offset / $this->m); diff --git a/Message/Socket/SocketHeader.php b/Message/Socket/SocketHeader.php index c331f5b75..a858f6bf9 100644 --- a/Message/Socket/SocketHeader.php +++ b/Message/Socket/SocketHeader.php @@ -26,7 +26,7 @@ use phpOMS\Message\HeaderAbstract; * @link https://karaka.app * @since 1.0.0 */ -class SocketHeader extends HeaderAbstract implements \Serializable +class SocketHeader extends HeaderAbstract { private $sendFrom = null; @@ -199,9 +199,9 @@ class SocketHeader extends HeaderAbstract implements \Serializable * * @since 1.0.0 */ - public function serialize() : string + public function __serialize() : array { - return $this->__toString(); + return []; } /** @@ -225,7 +225,7 @@ class SocketHeader extends HeaderAbstract implements \Serializable * * @since 1.0.0 */ - public function unserialize($string) : void + public function __unserialize($string) : void { } diff --git a/Model/Message/Dom.php b/Model/Message/Dom.php index e4cc95003..d7a774f96 100644 --- a/Model/Message/Dom.php +++ b/Model/Message/Dom.php @@ -24,7 +24,7 @@ use phpOMS\Contract\ArrayableInterface; * @link https://karaka.app * @since 1.0.0 */ -final class Dom implements \Serializable, ArrayableInterface +final class Dom implements ArrayableInterface { /** * Message type. @@ -125,13 +125,13 @@ final class Dom implements \Serializable, ArrayableInterface /** * Render message. * - * @return string + * @return array * * @since 1.0.0 */ - public function serialize() : string + public function __serialize() : array { - return $this->__toString(); + return $this->toArray(); } /** @@ -145,7 +145,7 @@ final class Dom implements \Serializable, ArrayableInterface /** * {@inheritdoc} */ - public function unserialize($raw) : void + public function __unserialize($raw) : void { $unserialized = \json_decode($raw, true); diff --git a/Model/Message/FormValidation.php b/Model/Message/FormValidation.php index ea9e96732..e695be6c4 100644 --- a/Model/Message/FormValidation.php +++ b/Model/Message/FormValidation.php @@ -24,7 +24,7 @@ use phpOMS\Contract\ArrayableInterface; * @link https://karaka.app * @since 1.0.0 */ -final class FormValidation implements \JsonSerializable, \Serializable, ArrayableInterface +final class FormValidation implements \JsonSerializable, ArrayableInterface { /** * Message type. @@ -57,13 +57,13 @@ final class FormValidation implements \JsonSerializable, \Serializable, Arrayabl /** * Render message. * - * @return string + * @return array * * @since 1.0.0 */ - public function serialize() : string + public function __serialize() : array { - return $this->__toString(); + return $this->toArray(); } /** @@ -77,7 +77,7 @@ final class FormValidation implements \JsonSerializable, \Serializable, Arrayabl /** * {@inheritdoc} */ - public function unserialize($raw) : void + public function __unserialize($raw) : void { $unserialized = \json_decode($raw, true); diff --git a/Model/Message/Notify.php b/Model/Message/Notify.php index 74dc6b062..1b40e0317 100644 --- a/Model/Message/Notify.php +++ b/Model/Message/Notify.php @@ -24,7 +24,7 @@ use phpOMS\Contract\ArrayableInterface; * @link https://karaka.app * @since 1.0.0 */ -final class Notify implements \JsonSerializable, \Serializable, ArrayableInterface +final class Notify implements \JsonSerializable, ArrayableInterface { /** * Message type. @@ -161,13 +161,13 @@ final class Notify implements \JsonSerializable, \Serializable, ArrayableInterfa /** * Render message. * - * @return string + * @return array * * @since 1.0.0 */ - public function serialize() : string + public function __serialize() : array { - return $this->__toString(); + return $this->toArray(); } /** @@ -181,7 +181,7 @@ final class Notify implements \JsonSerializable, \Serializable, ArrayableInterfa /** * {@inheritdoc} */ - public function unserialize($raw) : void + public function __unserialize($raw) : void { $unserialized = \json_decode($raw, true); diff --git a/Model/Message/Redirect.php b/Model/Message/Redirect.php index 70d4478a4..7e19447fd 100644 --- a/Model/Message/Redirect.php +++ b/Model/Message/Redirect.php @@ -24,7 +24,7 @@ use phpOMS\Contract\ArrayableInterface; * @link https://karaka.app * @since 1.0.0 */ -final class Redirect implements \JsonSerializable, \Serializable, ArrayableInterface +final class Redirect implements \JsonSerializable, ArrayableInterface { /** * Message type. @@ -103,13 +103,13 @@ final class Redirect implements \JsonSerializable, \Serializable, ArrayableInter /** * Render message. * - * @return string + * @return array * * @since 1.0.0 */ - public function serialize() : string + public function __serialize() : array { - return $this->__toString(); + return $this->toArray(); } /** @@ -123,7 +123,7 @@ final class Redirect implements \JsonSerializable, \Serializable, ArrayableInter /** * {@inheritdoc} */ - public function unserialize($raw) : void + public function __unserialize($raw) : void { $unserialized = \json_decode($raw, true); diff --git a/Model/Message/Reload.php b/Model/Message/Reload.php index abbcc461c..c2f362c52 100644 --- a/Model/Message/Reload.php +++ b/Model/Message/Reload.php @@ -24,7 +24,7 @@ use phpOMS\Contract\ArrayableInterface; * @link https://karaka.app * @since 1.0.0 */ -final class Reload implements \JsonSerializable, \Serializable, ArrayableInterface +final class Reload implements \JsonSerializable, ArrayableInterface { /** * Message type. @@ -71,19 +71,19 @@ final class Reload implements \JsonSerializable, \Serializable, ArrayableInterfa /** * Render message. * - * @return string + * @return array * * @since 1.0.0 */ - public function serialize() : string + public function __serialize() : array { - return $this->__toString(); + return $this->toArray(); } /** * {@inheritdoc} */ - public function unserialize($raw) : void + public function __unserialize($raw) : void { $unserialized = \json_decode($raw, true); diff --git a/Stdlib/Base/FloatInt.php b/Stdlib/Base/FloatInt.php index 9901bd427..1f8a5e123 100644 --- a/Stdlib/Base/FloatInt.php +++ b/Stdlib/Base/FloatInt.php @@ -22,7 +22,7 @@ namespace phpOMS\Stdlib\Base; * @link https://karaka.app * @since 1.0.0 */ -class FloatInt implements \Serializable +class FloatInt { /** * Max amount of decimals. @@ -306,9 +306,9 @@ class FloatInt implements \Serializable * * @since 1.0.0 */ - public function serialize() : string + public function __serialize() : array { - return (string) $this->getInt(); + return [$this->getInt()]; } /** @@ -320,7 +320,7 @@ class FloatInt implements \Serializable * * @since 1.0.0 */ - public function unserialize($value) : void + public function __unserialize($value) : void { $this->setInt((int) $value); } diff --git a/Stdlib/Base/Iban.php b/Stdlib/Base/Iban.php index 1d8fb42b4..49e79256e 100644 --- a/Stdlib/Base/Iban.php +++ b/Stdlib/Base/Iban.php @@ -24,7 +24,7 @@ use phpOMS\Validation\Finance\IbanEnum; * @link https://karaka.app * @since 1.0.0 */ -class Iban implements \Serializable +class Iban { /** * Iban. @@ -254,9 +254,9 @@ class Iban implements \Serializable /** * {@inheritdoc} */ - public function serialize() : string + public function __serialize() : array { - return $this->prettyPrint(); + return [$this->prettyPrint()]; } /** @@ -280,7 +280,7 @@ class Iban implements \Serializable * @return void * @since 5.1.0 */ - public function unserialize($serialized) : void + public function __unserialize($serialized) : void { $this->parse($serialized); } diff --git a/Stdlib/Base/Location.php b/Stdlib/Base/Location.php index 868ce7d58..e20b7898c 100644 --- a/Stdlib/Base/Location.php +++ b/Stdlib/Base/Location.php @@ -24,7 +24,7 @@ use phpOMS\Localization\ISO3166TwoEnum; * @link https://karaka.app * @since 1.0.0 */ -class Location implements \JsonSerializable, \Serializable +class Location implements \JsonSerializable { /** * Location id @@ -183,9 +183,9 @@ class Location implements \JsonSerializable, \Serializable /** * {@inheritdoc} */ - public function serialize() : string + public function __serialize() : array { - return (string) \json_encode($this->jsonSerialize()); + return $this->toArray(); } /** @@ -214,7 +214,7 @@ class Location implements \JsonSerializable, \Serializable /** * {@inheritdoc} */ - public function unserialize($serialized) : void + public function __unserialize($serialized) : void { $data = \json_decode($serialized, true); diff --git a/Stdlib/Queue/PriorityQueue.php b/Stdlib/Queue/PriorityQueue.php index a40b569c2..6f97f8743 100644 --- a/Stdlib/Queue/PriorityQueue.php +++ b/Stdlib/Queue/PriorityQueue.php @@ -24,7 +24,7 @@ use phpOMS\Stdlib\Base\Exception\InvalidEnumValue; * @link https://karaka.app * @since 1.0.0 */ -class PriorityQueue implements \Countable, \Serializable +class PriorityQueue implements \Countable { /** * Queue type. @@ -313,9 +313,9 @@ class PriorityQueue implements \Countable, \Serializable /** * {@inheritdoc} */ - public function serialize() : string + public function __serialize() : array { - return (string) \json_encode($this->queue); + return $this->queue; } /** @@ -327,7 +327,7 @@ class PriorityQueue implements \Countable, \Serializable * * @since 1.0.0 */ - public function unserialize($data) : void + public function __unserialize($data) : void { $this->queue = \json_decode($data, true); } diff --git a/System/File/Ftp/Directory.php b/System/File/Ftp/Directory.php index 6a40c3d70..d0c523b32 100644 --- a/System/File/Ftp/Directory.php +++ b/System/File/Ftp/Directory.php @@ -728,7 +728,7 @@ class Directory extends FileAbstract implements DirectoryInterface /** * {@inheritdoc} */ - public function offsetExists($offset) : bool + public function offsetExists(mixed $offset) : bool { $offset = isset($this->nodes[$offset]) ? $offset : $this->path . '/' . $offset; diff --git a/System/File/Local/Directory.php b/System/File/Local/Directory.php index 756c7eb91..2d660686f 100644 --- a/System/File/Local/Directory.php +++ b/System/File/Local/Directory.php @@ -551,7 +551,7 @@ final class Directory extends FileAbstract implements DirectoryInterface /** * {@inheritdoc} */ - public function offsetExists($offset) : bool + public function offsetExists(mixed $offset) : bool { $offset = isset($this->nodes[$offset]) ? $offset : $this->path . '/' . $offset; diff --git a/Utils/Parser/Php/ArrayParser.php b/Utils/Parser/Php/ArrayParser.php index 8d9e8210c..1f9cc06be 100644 --- a/Utils/Parser/Php/ArrayParser.php +++ b/Utils/Parser/Php/ArrayParser.php @@ -77,8 +77,6 @@ class ArrayParser return \rtrim(\rtrim(\number_format($value, 5, '.', ''), '0'), '.'); } elseif (\is_scalar($value)) { return (string) $value; - } elseif ($value instanceof \Serializable) { - return self::parseVariable($value->serialize()); } elseif ($value instanceof \JsonSerializable) { return self::parseVariable($value->jsonSerialize()); } else { diff --git a/Utils/StringUtils.php b/Utils/StringUtils.php index 1b0d13b60..db7da5b0b 100644 --- a/Utils/StringUtils.php +++ b/Utils/StringUtils.php @@ -200,8 +200,6 @@ final class StringUtils $encoded = \json_encode($element, $option !== null ? $option : 0); return $encoded ? $encoded : null; - } elseif ($element instanceof \Serializable) { - return $element->serialize(); } elseif (\is_string($element)) { return $element; } elseif (\is_int($element) || \is_float($element)) { diff --git a/Utils/TaskSchedule/Interval.php b/Utils/TaskSchedule/Interval.php index da67921ac..548c0bfef 100644 --- a/Utils/TaskSchedule/Interval.php +++ b/Utils/TaskSchedule/Interval.php @@ -22,7 +22,7 @@ namespace phpOMS\Utils\TaskSchedule; * @link https://karaka.app * @since 1.0.0 */ -class Interval implements \Serializable +class Interval { /** * Start of the task. @@ -520,13 +520,13 @@ class Interval implements \Serializable /** * Create string representation. * - * @return string + * @return array * * @since 1.0.0 */ - public function serialize() : string + public function __serialize() : array { - $serialized = \json_encode([ + return [ 'start' => $this->start->format('Y-m-d H:i:s'), 'end' => $this->end === null ? null : $this->end->format('Y-m-d H:i:s'), 'maxDuration' => $this->maxDuration, @@ -535,9 +535,7 @@ class Interval implements \Serializable 'dayOfMonth' => $this->dayOfMonth, 'dayOfWeek' => $this->dayOfWeek, 'year' => $this->year, - ]); - - return $serialized === false ? '{}' : $serialized; + ]; } /** @@ -549,7 +547,7 @@ class Interval implements \Serializable * * @since 1.0.0 */ - public function unserialize($serialized) : void + public function __unserialize($serialized) : void { $data = \json_decode($serialized, true); diff --git a/tests/DataStorage/Cache/Connection/FileCacheSerializable.php b/tests/DataStorage/Cache/Connection/FileCacheSerializable.php index 8534b0691..3a89e527e 100755 --- a/tests/DataStorage/Cache/Connection/FileCacheSerializable.php +++ b/tests/DataStorage/Cache/Connection/FileCacheSerializable.php @@ -14,16 +14,16 @@ declare(strict_types=1); namespace phpOMS\tests\DataStorage\Cache\Connection; -class FileCacheSerializable implements \Serializable +class FileCacheSerializable { public $val = 'asdf'; - public function serialize() + public function __serialize() { - return 'abc'; + return ['abc']; } - public function unserialize($val) : void + public function __unserialize($val) : void { $this->val = $val; } diff --git a/tests/DataStorage/Database/TestModel/BaseModel.php b/tests/DataStorage/Database/TestModel/BaseModel.php index 5bdaaab66..872b0a981 100755 --- a/tests/DataStorage/Database/TestModel/BaseModel.php +++ b/tests/DataStorage/Database/TestModel/BaseModel.php @@ -65,15 +65,15 @@ class BaseModel $this->ownsOneSelf = new OwnsOneModel(); $this->belongsToOne = new BelongsToModel(); - $this->serializable = new class() implements \Serializable { + $this->serializable = new class() { public $value = ''; - public function serialize() + public function __serialize() { - return '123'; + return ['123']; } - public function unserialize($data) : void + public function __unserialize($data) : void { $this->value = $data; } diff --git a/tests/Utils/Parser/Php/ArrayParserTest.php b/tests/Utils/Parser/Php/ArrayParserTest.php index 1bda69619..45288b8aa 100644 --- a/tests/Utils/Parser/Php/ArrayParserTest.php +++ b/tests/Utils/Parser/Php/ArrayParserTest.php @@ -30,12 +30,6 @@ final class ArrayParserTest extends \PHPUnit\Framework\TestCase */ public function testParser() : void { - $serializable = new class() implements \Serializable { - public function serialize() { return 2; } - - public function unserialize($raw) : void {} - }; - $jsonSerialize = new class() implements \JsonSerializable { public function jsonSerialize() { return [6, 7]; } }; @@ -50,7 +44,6 @@ final class ArrayParserTest extends \PHPUnit\Framework\TestCase 0 => 'a', 1 => 'b', ], - 5 => $serializable, 6 => $jsonSerialize, ]; @@ -64,7 +57,6 @@ final class ArrayParserTest extends \PHPUnit\Framework\TestCase 0 => 'a', 1 => 'b', ], - 5 => $serializable->serialize(), 6 => $jsonSerialize->jsonSerialize(), ]; diff --git a/tests/Utils/StringUtilsTest.php b/tests/Utils/StringUtilsTest.php index 630cfe016..9a57f0207 100644 --- a/tests/Utils/StringUtilsTest.php +++ b/tests/Utils/StringUtilsTest.php @@ -130,17 +130,6 @@ final class StringUtilsTest extends \PHPUnit\Framework\TestCase self::assertEquals('["abc"]', StringUtils::stringify(['abc'])); - self::assertEquals('abc', StringUtils::stringify(new class() implements \Serializable { - public function serialize() - { - return 'abc'; - } - - public function unserialize($val) : void - { - } - })); - self::assertEquals('abc', StringUtils::stringify('abc')); self::assertEquals('1', StringUtils::stringify(1)); self::assertEquals('1.1', StringUtils::stringify(1.1));