snscripts / getset
用于向对象添加魔法setter/getter的特性
1.0.0
2017-06-24 15:08 UTC
Requires
- php: >=5.6.0
Requires (Dev)
- phpunit/phpunit: 5.7.5
- squizlabs/php_codesniffer: ~2.0
This package is auto-updated.
Last update: 2024-09-10 21:32:26 UTC
README
介绍
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 变量检索时的数据。这些转换器应采用格式 setXAttr 和 getXAttr,其中 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)。请参阅 许可证文件 获取更多信息。