PHP code example of lastdragon-ru / lara-asp-serializer
1. Go to this page and download the library: Download lastdragon-ru/lara-asp-serializer library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
lastdragon-ru / lara-asp-serializer example snippets
declare(strict_types = 1);
// phpcs:disable PSR1.Files.SideEffects
// phpcs:disable PSR1.Classes.ClassDeclaration
namespace LastDragon_ru\LaraASP\Serializer\Docs\Examples\Usage;
use DateTimeInterface;
use Illuminate\Support\Facades\Date;
use LastDragon_ru\LaraASP\Dev\App\Example;
use LastDragon_ru\LaraASP\Serializer\Contracts\Serializable;
use LastDragon_ru\LaraASP\Serializer\Contracts\Serializer;
class User implements Serializable {
public function __construct(
public int $id,
public string $name,
public DateTimeInterface $created,
) {
// empty
}
}
$user = new User(1, 'User', Date::parse('2023-08-27T08:30:44.473+00:00'));
$serializer = app()->make(Serializer::class);
$serialized = $serializer->serialize($user);
$deserialized = $serializer->deserialize(User::class, $serialized);
Example::dump($serialized);
Example::dump($deserialized);
declare(strict_types = 1);
// phpcs:disable PSR1.Files.SideEffects
// phpcs:disable PSR1.Classes.ClassDeclaration
namespace LastDragon_ru\LaraASP\Serializer\Docs\Examples\Partial;
use LastDragon_ru\LaraASP\Dev\App\Example;
use LastDragon_ru\LaraASP\Serializer\Contracts\Partial;
use LastDragon_ru\LaraASP\Serializer\Contracts\Serializable;
use LastDragon_ru\LaraASP\Serializer\Contracts\Serializer;
class User implements Serializable, Partial {
public function __construct(
public string $name,
) {
// empty
}
}
$serializer = app()->make(Serializer::class);
$deserialized = $serializer->deserialize(User::class, '{"id":1,"name":"User"}');
Example::dump($deserialized);
declare(strict_types = 1);
// phpcs:disable PSR1.Files.SideEffects
// phpcs:disable PSR1.Classes.ClassDeclaration
namespace LastDragon_ru\LaraASP\Serializer\Docs\Examples\Attribute;
use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Model;
use LastDragon_ru\LaraASP\Dev\App\Example;
use LastDragon_ru\LaraASP\Serializer\Casts\Serialized;
use LastDragon_ru\LaraASP\Serializer\Contracts\Serializable;
class UserSettings implements Serializable {
public function __construct(
public int $perPage,
public bool $showSidebar,
) {
// empty
}
}
class User extends Model {
/**
* @return Attribute<?UserSettings, ?UserSettings>
*/
protected function settings(): Attribute {
return app()->make(Serialized::class)->attribute(UserSettings::class);
}
}
$user = new User();
$user->settings = new UserSettings(35, false);
Example::dump($user->settings);
Example::dump($user->getAttributes());