aviator / delegate
Installs: 1 388
Dependents: 1
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=7.0.0
Requires (Dev)
- phpunit/phpunit: ~6.4.0
This package is auto-updated.
Last update: 2024-11-21 20:53:54 UTC
README
Overview
Delegate is a simple way to make property calls chainable when they otherwise wouldn't be.
Installation
Via Composer:
composer require aviator/delegate
Testing
Via Composer:
composer test
Usage
Use a magic __get
to set up a delegate:
public function __get ($name) { if ($name === 'foo') { return $this->getFooDelegate() } }
which will return the delegate when $instance->foo
is called.
Since Delegate accepts anything as its first parameter and a Closure as its second, you can do anything:
private function getFooDelegate () { return new Delegate($this->someMember, function ($collection, $name) { return $collection->get($name); } }
This allows you to call $instance->foo->bar
, which will call your function against someMember
.