Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Foo Extends \ILLI\Core\StaticObject
- {
- public static function prototypeBlobb($data)
- {
- $data[] = __METHOD__;
- return $data;
- }
- public static function prototypeMethod($data)
- {
- $data['data'][] = __METHOD__;
- return $data['data'];
- }
- public static function method($data, $bla)
- {
- return static::prototype(__FUNCTION__, get_defined_vars());
- }
- public static function blobb($data, $bla)
- {
- return static::prototype(__FUNCTION__, get_defined_vars());
- }
- public static function facade(array $params = [], \ILLI\Core\Filter $chain)
- {
- $params['data'][] = 'Starting external facade';
- $params = $chain->next($params, $chain);
- $params[] = '--EXTERNAL METHOD FACADE';
- return $params;
- }
- }
- foo::registerClass('baz\bar', 'blubb\bar');
- foo::registerMethod('baz', function($data)
- {
- return $data;
- });
- foo::registerAdapter('method', 'blobb');
- foo::registerMethodFacade('blobb', 'facade');
- foo::registerMethodFacade('blobb', function(array $params = [], \ILLI\Core\Filter $chain)
- {
- $params['data'][] = 'Starting facade';
- $params = $chain->next($params, $chain);
- $params[] = '--OUTER METHOD FACADE';
- return $params;
- });
- foo::registerMethodFacade('blobb', function(array $params = [], \ILLI\Core\Filter $chain)
- {
- $params['data'][] = 'Starting inner facade';
- $params = $chain->next($params, $chain);
- $params[] = '--INNER METHOD FACADE';
- return $params;
- });
- foo::registerSignal('baz', 'PRE_EVENT', 666, function($sender, $functionName, $event, $params)
- {
- $params['data'][] = 'SIGNAL PRE_EVENT #1';
- return $params;
- });
- foo::registerSignal('blobb', 'PRE_EVENT', 777, function($sender, $functionName, $event, $params)
- {
- $params['data'][] = 'SIGNAL PRE_EVENT #2';
- return $params;
- });
- foo::registerSignal('blobb', 'FOO_EVENT', 666, function($sender, $functionName, $event, $params)
- {
- $params['data'][] = 'SIGNAL FOO_EVENT #1';
- return $params;
- });
- foo::registerSignal('blobb', 'POST_EVENT', 666, function($sender, $functionName, $event, $result, $params)
- {
- $result[] = 'SIGNAL POST_EVENT #1';
- return $result;
- });
- foo::registerSignal('blobb', 'POST_EVENT', 777, function($sender, $functionName, $event, $result, $params)
- {
- $result[] = 'SIGNAL POST_EVENT #2';
- return $result;
- });
- foo::registerFilter('blobb', 'PARAMS', function($params) { $params['data'][] = 'FILTER DATA #1'; return $params; });
- foo::registerFilter('blobb', 'PARAMS', function($params) { $params['data'][] = 'FILTER DATA #2'; return $params; });
- foo::registerFilter('blobb', 'RETURN', function($result) { $result[] = 'FILTER RESULT #1'; return $result; });
- foo::registerFilter('blobb', 'RETURN', function($result) { $result[] = 'FILTER RESULT #2'; return $result; });
- $result = foo::method(['Starting test'], 'Hello World');
- var_dump(foo::baz('hello')); var_dump(compact('result'));
- /*
- string(5) "hello"
- array(1) {
- ["result"]=>
- array(14) {
- [0]=>
- string(13) "Starting test"
- [1]=>
- string(14) "FILTER DATA #1"
- [2]=>
- string(14) "FILTER DATA #2"
- [3]=>
- string(19) "SIGNAL PRE_EVENT #2"
- [4]=>
- string(24) "Starting external facade"
- [5]=>
- string(15) "Starting facade"
- [6]=>
- string(21) "Starting inner facade"
- [7]=>
- string(24) "root\Foo::prototypeBlobb"
- [8]=>
- string(21) "--INNER METHOD FACADE"
- [9]=>
- string(21) "--OUTER METHOD FACADE"
- [10]=>
- string(24) "--EXTERNAL METHOD FACADE"
- [11]=>
- string(16) "FILTER RESULT #1"
- [12]=>
- string(16) "FILTER RESULT #2"
- [13]=>
- string(20) "SIGNAL POST_EVENT #2"
- }
- }
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement