camspiers / closureaccess
There is no license information available for the latest version (0.3.1) of this package.
Brings JavaScript-like functionality to your objects
0.3.1
2014-06-03 02:11 UTC
Requires (Dev)
- camspiers/bench: 0.1.*
- phpunit/phpunit: ~4.1
README
The closure access trait brings JavaScript-like functionality to your objects in the following ways:
- Public methods on objects can be accessed as properties e.g. $obj->methodName
- Closures added to objects can be executed like public methods e.g. $obj->closureProp()
No claims are made as to whether you should use this library, it is provided more as a proof of concept.
Installation (with composer)
composer require camspiers/closureaccess:dev-master
Performance
- Accessing public methods as properties e.g. $obj->methodName (return Closure)
~2.1x
slower- Closures added to objects can be executed like public methods e.g. $obj->closureProp()
~3.1x
slower
Usage
class A { use Camspiers\ClosureAccess; public function hello() { return "Hello"; } } function run($fn) { return $fn(); } $a = new A; // an example of accessing a public method via properties and passing it around echo run($a->hello), ', World'; // an example of executing a closure property as a method $a->world = function () { return "World"; }; echo 'Hello, ', $a->world();