avonnadozie / liteonion
2.0.0
2018-09-06 00:20 UTC
Requires (Dev)
- mockery/mockery: 0.9.*
- orchestra/testbench: ~3.1
- phpunit/phpunit: ~4.7
- satooshi/php-coveralls: dev-master@dev
This package is not auto-updated.
Last update: 2025-03-25 03:29:56 UTC
README
Installation
composer require avonnadozie/liteonion
Usage
class BeforeLayer implements LayerInterface { public function peel($object, Closure $next) { $object->runs[] = 'before'; return $next($object); } } class AfterLayer implements LayerInterface { public function peel($object, Closure $next) { $response = $next($object); $object->runs[] = 'after'; return $response; } } $object = new StdClass; $object->runs = []; $onion = new Onion; $end = $onion->layer([ new AfterLayer(), new BeforeLayer(), new AfterLayer(), new BeforeLayer() ]) ->peel($object, function($object){ $object->runs[] = 'core'; return $object; }); var_dump($end);
Will output
..object(stdClass)#161 (1) {
["runs"]=>
array(5) {
[0]=>
string(6) "before"
[1]=>
string(6) "before"
[2]=>
string(4) "core"
[3]=>
string(5) "after"
[4]=>
string(5) "after"
}
}