From dd539f9734bfbc83d62b160c56d27cd355c66c7c Mon Sep 17 00:00:00 2001 From: Aleksei Lebedev <1329824+LastDragon-ru@users.noreply.github.com> Date: Fri, 3 May 2024 14:57:23 +0400 Subject: [PATCH] deprecate(serializer): `\LastDragon_ru\LaraASP\Serializer\Casts\AsSerializable`, please use `\LastDragon_ru\LaraASP\Serializer\Casts\Serialized` attribute instead. --- packages/serializer/README.md | 78 ------------------- .../docs/Examples/AsSerializable.php | 44 ----------- .../docs/Examples/AsSerializable.run | 3 - .../serializer/src/Casts/AsSerializable.php | 8 ++ .../src/Casts/AsSerializableTest.php | 1 + 5 files changed, 9 insertions(+), 125 deletions(-) delete mode 100644 packages/serializer/docs/Examples/AsSerializable.php delete mode 100755 packages/serializer/docs/Examples/AsSerializable.run diff --git a/packages/serializer/README.md b/packages/serializer/README.md index 37ecc6c1a..910de4249 100644 --- a/packages/serializer/README.md +++ b/packages/serializer/README.md @@ -176,84 +176,6 @@ The `$user->getAttributes()` is: [//]: # (end: 211a5dc77435fa2d79fcb5afce955fdd851bd0be575b7eae03d69d3fe5111b0a) -# Eloquent Cast[^1] - -You can use the [`LastDragon_ru\LaraASP\Serializer\Casts\AsSerializable`](./src/Casts/AsSerializable.php) cast class to cast a model string attribute to an object: - -[include:example]: ./docs/Examples/AsSerializable.php -[//]: # (start: 17152ed9d4094e5a2bb12c34f6fdb2f223a90f75c9ae440580dded1082fe6dec) -[//]: # (warning: Generated automatically. Do not edit.) - -```php - - */ - #[Override] - protected function casts(): array { - return array_merge(parent::casts(), [ - 'settings' => AsSerializable::using(UserSettings::class), - ]); - } -} - -$user = new User(); -$user->settings = new UserSettings(35, false); - -Example::dump($user->settings); -Example::dump($user->getAttributes()); -``` - -The `$user->settings` is: - -```plain -LastDragon_ru\LaraASP\Serializer\Docs\Examples\AsSerializable\UserSettings { - +perPage: 35 - +showSidebar: false -} -``` - -The `$user->getAttributes()` is: - -```plain -[ - "settings" => "{"perPage":35,"showSidebar":false}", -] -``` - -[//]: # (end: 17152ed9d4094e5a2bb12c34f6fdb2f223a90f75c9ae440580dded1082fe6dec) - -[include:file]: ../../docs/Shared/Upgrading.md -[//]: # (start: e9139abedb89f69284102c9112b548fd7add07cf196259916ea4f1c98977223b) -[//]: # (warning: Generated automatically. Do not edit.) - # Upgrading Please follow [Upgrade Guide](UPGRADE.md). diff --git a/packages/serializer/docs/Examples/AsSerializable.php b/packages/serializer/docs/Examples/AsSerializable.php deleted file mode 100644 index 6b5b96cd7..000000000 --- a/packages/serializer/docs/Examples/AsSerializable.php +++ /dev/null @@ -1,44 +0,0 @@ - - */ - #[Override] - protected function casts(): array { - return array_merge(parent::casts(), [ - 'settings' => AsSerializable::using(UserSettings::class), - ]); - } -} - -$user = new User(); -$user->settings = new UserSettings(35, false); - -Example::dump($user->settings); -Example::dump($user->getAttributes()); diff --git a/packages/serializer/docs/Examples/AsSerializable.run b/packages/serializer/docs/Examples/AsSerializable.run deleted file mode 100755 index aefd0de01..000000000 --- a/packages/serializer/docs/Examples/AsSerializable.run +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash - -"${BASH_SOURCE%/*}/../../../../dev/artisan" dev:example "${BASH_SOURCE%.*}.php" diff --git a/packages/serializer/src/Casts/AsSerializable.php b/packages/serializer/src/Casts/AsSerializable.php index 427bb062b..82d82815c 100644 --- a/packages/serializer/src/Casts/AsSerializable.php +++ b/packages/serializer/src/Casts/AsSerializable.php @@ -7,11 +7,19 @@ use Illuminate\Database\Eloquent\Model; use LastDragon_ru\LaraASP\Serializer\Contracts\Serializer; use LastDragon_ru\LaraASP\Serializer\Exceptions\FailedToCast; +use LastDragon_ru\LaraASP\Serializer\Package; use Override; use function is_string; +use function trigger_deprecation; + +// phpcs:disable PSR1.Files.SideEffects + +trigger_deprecation(Package::Name, '%{VERSION}', 'Please use `%s` instead.', Serialized::class); /** + * @deprecated %{VERSION} Please use {@see Serialized} instead. + * * @template TGet of object * @template TSet of object * diff --git a/packages/serializer/src/Casts/AsSerializableTest.php b/packages/serializer/src/Casts/AsSerializableTest.php index a0018cae1..6e04eab13 100644 --- a/packages/serializer/src/Casts/AsSerializableTest.php +++ b/packages/serializer/src/Casts/AsSerializableTest.php @@ -12,6 +12,7 @@ use PHPUnit\Framework\Attributes\DataProvider; /** + * @deprecated %{VERSION} * @internal */ #[CoversClass(AsSerializable::class)]