aviator / delegate
1.0
2017-10-11 21:31 UTC
Requires
- php: >=7.0.0
Requires (Dev)
- phpunit/phpunit: ~6.4.0
This package is auto-updated.
Last update: 2024-09-21 20:33:59 UTC
README
概述
Delegate 是一种简单的方法,在属性调用本不应链式调用时使其能够链式调用。
安装
通过 Composer
composer require aviator/delegate
测试
通过 Composer
composer test
使用方法
使用魔法函数 __get
来设置代理
public function __get ($name) { if ($name === 'foo') { return $this->getFooDelegate() } }
当调用 $instance->foo
时,它将返回代理。
由于 Delegate 接受任何作为其第一个参数,接受闭包作为第二个参数,所以你可以做任何事
private function getFooDelegate () { return new Delegate($this->someMember, function ($collection, $name) { return $collection->get($name); } }
这允许你调用 $instance->foo->bar
,这将调用你的函数针对 someMember
。