smartgroup/smart-serializer

Smart-serializer 是一个微小的库,允许序列化 PHP 对象。它支持 Symfony 的路由、翻译和嵌套对象。

1.0.3 2022-12-06 08:06 UTC

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