smartgroup / smart-serializer
Smart-serializer 是一个微小的库,允许序列化 PHP 对象。它支持 Symfony 的路由、翻译和嵌套对象。
1.0.3
2022-12-06 08:06 UTC
Requires
- php: ^8.0
- doctrine/annotations: ^1.13.3
- doctrine/orm: ^2.13
- symfony/routing: ^6.1
- symfony/translation: ^6.1
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-06 12:29:50 UTC
README
这是一个微小的库,可以用于任何 PHP 项目中,然而它主要设计用来支持 Symfony 项目(Symfony 6 及以上版本)。
如何安装
调用以下命令将其添加到您的项目中
composer require smartgroup/smart-serializer
如何使用
这个库很容易使用。对于需要序列化的实体或对象,只需用 Snapshot 注解其属性或方法。
class Photo { #[Snapshot] private ?int $id; #[Snapshot] private string $locale = 'pl'; #[Snapshot(isObject: true)] private PhotoGallery $photoGallery; #[Snapshot] private string $title; private string $slug; }
上述代码将返回一个包含已注解字段的序列化对象。要获取序列化对象,只需调用
$serializedObject = Serializer::getSnapshot($photoObject, true);
Snapshot 注解选项
用 Snapshot 注解对象时,您有以下选项
- isObject - 字段是一个对象,应该也被序列化
- isDate - 对象是日期
- dateFormat - 如果对象是日期,您可以指定日期的输出格式,默认为 'Y-m-d H:i:s'
- fieldName - 默认情况下,值的名称是字段名称,但您可以在这里放置值来覆盖名称
- isRoute - 它将解析值以提取使用 symfony/router 的实际路由(需要传递 symfony/router 接口给 getSnapshot 方法)
- isCollection - 它将提取值作为序列化的集合
- translate - 它将使用 symfony/translate 翻译值(需要传递 symfony/translate 接口给 getSnapshot 方法)
贡献
该项目由一群开发者维护。欢迎并感谢贡献。您可以在 GitHub 上找到 Jodit;请随意发起问题或创建拉取请求:https://github.com/mtulikowski/smart-serializer