snscripts/getset

用于向对象添加魔法setter/getter的特性

1.0.0 2017-06-24 15:08 UTC

This package is auto-updated.

Last update: 2024-09-10 21:32:26 UTC


README

Author Latest Version Software License Build Status

介绍

GetSet 是一个符合 PSR-2 规范的特性,用于向对象添加魔法getter/setter。

要求

Composer

GetSet 需要

  • "php": ">=5.6.0"

如果您希望在开发模式下运行并运行测试,则需要以下内容。

  • "phpunit/phpunit": "~5.7"
  • "squizlabs/php_codesniffer": "~2.0"

安装

Composer

最简单的安装方式是通过composer。

composer require snscripts/getset 1.*

或者将以下内容添加到您的项目中的 composer.json 文件。

{
    "require": {
        "snscripts/getset": "1.*"
    }
}

设置

要初始化GetSet,只需在您的类中使用此特性

class MyClass
{
    use \Snscripts\GetSet\GetSet;

    ...
}

用法

设置后,只需设置或获取您需要的对象上的任何变量。

$MyClass->foo_bar = 'barfoo';

echo $MyClass->foo_bar; // barfoo

这将使用 GetSet 特性将变量设置到添加到对象中的 $data 数组中。

变量转换器

您可以创建自定义的get/set转换器来更改变量在添加到或从 $data 变量检索时的数据。这些转换器应采用格式 setXAttrgetXAttr,其中 X 是您正在设置或从对象获取的变量的驼峰式版本。

在上面的示例中,foo_bar 的基本getter/setter方法可能如下所示

public function setFooBarAttr($value)
{
    $this->data['foo_bar'] = strtoupper($value);
}

public function getFooBarAttr()
{
    return strtolower($this->data['foo_bar']);
}

批量数据赋值

如果您需要将整个数据数组赋值给对象,并且希望变量通过任何自定义setter,则可以使用 setAllData 方法。

$MyClass->setAllData([
    'foo_bar' => 'barfoo'
]);

数据导出

如果您需要导出对象中设置的所有数据,可以使用以下两种方法之一。

toArray

$MyClass->toArray();

这将简单地返回对象上设置的所有数据作为一个数组。

toJson

$MyClass->toJson();

这将返回对象上设置的所有数据作为一个Json对象。这首先使用 toArray 方法检索一个数组,然后通过 json_encode 返回数据。

变更日志

您可以在 这里 查看变更日志。

贡献

有关详细信息,请参阅 CONTRIBUTING

许可证

MIT 许可证 (MIT)。请参阅 许可证文件 获取更多信息。