sylvrs / libmarshal
用于将数据打包/解包到对象中的库
1.4.3
2022-04-29 20:07 UTC
Requires
- php: >=8.0
- ext-yaml: *
Requires (Dev)
- phpstan/phpstan: ^1.5.7
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-16 04:13:33 UTC
README
一个用于从类中编码/解码数据的简单打包库。
安装
Composer
要通过composer安装此库,请运行以下命令
composer require sylvrs/libmarshal
Virion
此库的virion可以通过以下链接访问:此处.
基本示例
以下是一个关于如何使用此库的基本示例
class User { use MarshalTrait; public function __construct( #[Field(name: "first-name")] public string $firstName, #[Field(name: "last-name")] public string $lastName, public int $age, public string $email, #[Exclude] public string $internalData = "..." ) {} } // NOTE: This uses promoted properties to make it easier to construct. // You can learn more about this below. // Marshalling $user = new User(firstName: "John", lastName: "Doe", age: 30, email: "johndoe@gmail.com"); $data = $user->marshal(); // ["first-name" => "John", "last-name" => "Doe", "age" => 30, "email" => "johndoe@gmail.com"] $data["first-name"] = "Jane"; // Changing the first name $data["email"] = "janedoe@gmail.com"; // Changing the email // Unmarshalling $user = User::unmarshal($data); // User(firstName: "Jane", lastName: "Doe", age: 30, email: "janedoe@gmail.com")
Wiki
有关如何使用此库的详细信息,请参阅以下wiki:此处.
路线图
目前,有一些改进正在进行中。以下是一些改进列表
- 在打包/解包时对递归对象添加限制(50个?)
- 缓存属性以提高性能
问题
任何问题/建议都可以通过以下链接报告:此处.