kamilwylegala/immutable-setter
最新稳定版本:0.1.1
Composer 安装命令:
composer require kamilwylegala/immutable-setter
包简介
Utility class for PHP that helps making your classes immutable.
关键字:
README 文档
README
Tiny utillity class that helps you making your classes immutable by adding wither methods.
Inspired by Lombok's @Wither annotation.
It lets you easily add witherX methods to clone object with modified one property.
Installation
Use composer to get library from packagist:
$ php composer.phar require kamilwylegala/immutable-setter
Usage
- Add
witherfield to your class. - Assign
new Wither($this, ["arg1", "arg2"])to this field and provide constructor schema with proper order of arguments. You can also skip second argument and letWitherresolve constructor arguments automatically. - Add public
withArg1method to your class and put:
return $this->wither->getInstance("arg1", $newArg1)
- Running
$valueObject->withArg1($newArg1)will create copy of your object with changed$arg1field.
Example
use KamilWylegala\ImmutableSetter\Wither; class Person { private $name; private $age; private $wither; public function __construct($name, $age) { $this->name = $name; $this->age = $age; $this->wither = new Wither($this, ["name", "age"]); //Second param is optional. } public function withName($newName) { return $this->wither->getInstance("name", $newName); } }
Tests
Install dev dependencies and run in root:
$ vendor/bin/phpunit
Licence
MIT
统计信息
- 总下载量: 948
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2017-07-05