selfiens/property-alias

通过 ClassDoc 启用属性别名

dev-master 2023-05-24 15:54 UTC

This package is auto-updated.

Last update: 2024-09-24 19:01:14 UTC


README

PHPUnit Status

此包允许您通过简单的 ClassDoc 设置创建现有类属性的别名。

以下是一个创建对 $this->foo 的别名的示例。

/**
 * @property $my_alias = foo
 *              ^
 *              |
 *      This is how you define an alias to "$foo".
 *      Valid PHP identifiers will work, including UTF-8 $한글.
 */
 class MyClass {
    use \Selfiens\PropertyAliasTrait;

    public string $foo = 'foo';
 }

然后您可以通过别名读取/写入属性。

$my = new MyClass();

// read
echo $my->my_alias; // 'foo'

 // write
$my->my_alias = 'bar';
echo $my->foo; // 'bar';

安装

composer require selfiens/property-alias:^1.0

设置

此包的 \Selfiens\PropertyAliasTrait 使用 ClassDoc 作为别名定义的来源。您可以使用 @property 语法创建别名,如下面的示例所示

/**
 * @property $alias_name = target_property
 */

您可以定义任意多的别名。别名可以指向其他别名。

背景

现有属性上的别名

此包旨在通过更好的名称来辅助访问命名不佳的属性。它旨在帮助在无法因来源自外部API、命名不佳的数据库字段或重构名称的高风险等原因重命名属性的情况下。

使用 @property 在 ClassDoc 中定义别名

ClassDoc 中的 @property 定义被许多 IDE 理解,这些 IDE 将提供自动完成和重构,就像别名是真实属性一样。