pinekta / geta-setta
此库 'geta-setta' 提供获取方法和设置方法。
0.9.0
2018-08-27 00:24 UTC
Requires
- php: ^5.4 || ^7.0
- php-coveralls/php-coveralls: ^1.1 || ^2.0
Requires (Dev)
- phpunit/phpunit: ^4.8 || ^6.5 || ^7.0
- squizlabs/php_codesniffer: ^3.2
This package is auto-updated.
Last update: 2024-09-29 05:42:08 UTC
README
此库 'geta-setta' 提供获取方法和设置方法。
当调用不可访问的方法时,使用魔法方法 __call
,如果方法名的前缀是 set
,则将参数值设置到属性中。如果方法名的前缀是 get
,则返回属性的值。
如果没有前缀,如果有参数,则将参数值设置到与方法名相同的属性中。如果没有参数,则返回与方法名相同的属性的值。
geta-setta 需要 PHP >= 5.4.0。
安装
$ composer require pinekta/geta-setta
用法
<?php namespace Foo\bar; use Pinekta\GetaSetta\AccessorAvailable; class AudioPlayer { use AccessorAvailable; private $disc; private $tune; } $audioPlayer = new AudioPlayer(); $audioPlayer->setDisc('Editors [The Back Room]') ->setTune('Bullets'); echo $audioPlayer->getDisc(); // "Editors [The Back Room]" outputs echo $audioPlayer->getTune(); // "Bullets" outputs $audioPlayer->disc('Can [Monster Movie]'); ->tune('You Doo Right'); echo $audioPlayer->disc(); // "Can [Monster Movie]" outputs echo $audioPlayer->tune(); // "You Doo Right" outputs
高级用法
集体设置值
class AudioPlayer { use AccessorAvailable; private $disc; private $tune; } $audioPlayer = new AudioPlayer(); // Case array $audioPlayer->fill([ 'disc' => 'Number Girl [SAPPUKEI]', 'tune' => 'ZEGEN VS UNDERCOVER', ]); // Case object $set = new \stdClass(); $set->disc = 'Joy Division [Unknown Pleasures]'; $set->tune = 'New Dawn Fades'; $audioPlayer->fill($set);
不可写属性
如果您想排除某些属性(如 'id')的写入,请在调用类中添加 $gsUnwritableProps
属性。
class Disc { use AccessorAvailable; protected static $gsUnwritableProps = ['id']; private $id; private $name; private $size; } $disc = new Disc(); $disc->setId(100); // BadMethodCallException occurs
如果存在一些属性在写入时很麻烦,请使用它。
不可访问属性
如果您想排除某些属性,请在调用类中添加 $gsInaccessibleProps
属性。
class AudioPlayer { use AccessorAvailable; protected static $gsInaccessibleProps = ['tune']; private $disc; private $tune; } $audioPlayer = new AudioPlayer(); $audioPlayer->setDisc('Captain Beefheart [Trout Mask Replica]'); echo $audioPlayer->getDisc(); // "Captain Beefheart [Trout Mask Replica]" outputs $audioPlayer->setTune('Ella Guru'); // BadMethodCallException occurs $audioPlayer->getTune(); // BadMethodCallException occurs $audioPlayer->tune('Well'); // BadMethodCallException occurs $audioPlayer->tune(); // BadMethodCallException occurs
如果存在一些属性在访问时很麻烦,请使用它。另外,如果代码中同时存在 gsUnwritableProps
和 gsInaccessibleProps
,则 gsInaccessibleProps
优先。
贡献
欢迎贡献!此项目遵循 贡献者行为准则。通过参与此项目和其社区,您应遵守此准则。请阅读 CONTRIBUTING 获取详细信息。
版权
pinekta/geta-setta 版权 © @pinekta。
许可
pinekta/getta-setta 在 MIT 许可下发布。有关更多信息,请参阅 LICENSE。