Ypd Php Decorator 通过文档注释在 PHP 中实现了 "decorators/annotations and meta-programming"。

v0.1.0 2019-06-30 13:39 UTC

This package is auto-updated.

Last update: 2024-09-29 05:28:39 UTC


README

Ypd Php Decorator 通过文档注释在 PHP 中实现了 "decorators/annotations and meta-programming"。

INSTALL

您可以使用 composer 安装此包:composer require kyserbyte/ypd

用法

目前仅实现了 ypd::jsonSerialize 装饰器。要 激活 装饰器,您必须在要使其 json 可序列化 的类中实现 JsonSerializable 接口。然后,您必须将 YPDJsonSerializer 特性添加到您的类中。该特性具有符合 JsonSerializable 接口所需的方法 jsonSerialize() 的内部实现,因此您只需在类中声明 implements 语句即可。现在您可以在文档注释中使用装饰器,以声明要暴露给 json 的属性。目前装饰器仅适用于类的公共属性。

jsonSerialize 装饰器

在您的属性上方的文档注释中,您需要使用以下语法声明装饰器:

/**
* ypd::jsonSerialize(name=XX,if=YY) 
*/
public $propName;

使用声明,您可以向装饰器传递两个参数。

  • name:指定导出到 json 时属性的名称
  • if:一个解析为布尔值的函数。您可以使用它来实现导出属性的条件逻辑。该函数必须在属性的同一类中声明或在类使用的特性中声明,并且必须是公共的。

有关用法更多信息,请参阅 DemoJsonSerialize 类。