mbretter / stk-immutable
Stk 不变数据对象
2.1.0
2023-07-07 05:32 UTC
Requires
- php: ^8.0
- ext-json: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^v3.21.1
- phpstan/phpstan: ^1.10.25
- phpunit/phpunit: ^9
README
此库实现了用于持有某种类型数据的对象的不可变设计模式。
映射
映射可以存储对象(stdClass)和/或数组,它们可以嵌套,当从/向无SQL数据库(如MongoDB)读取/写入时非常有用。
use Stk\Immutable\Map; $a = new Map((object)['x' => 'foo', 'y' => 'bar']); $b = $a->set('x', 'whatever');
调用对象$a上的set方法不会修改它,而是返回一个带有修改的克隆,原始映射将永远不会被修改。
比较两个映射非常简单,无需编写复杂且消耗资源的比较函数,只需使用相同的操作符即可。
if ($a === $b) { ... }