Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $foo = new foz([
- '__filter' => [
- 'baz' =>
- [
- 'ARGS' =>
- [
- function($params)
- {
- $params['data'][] = 'FILTER DATA #1';
- return $params;
- },
- function($params)
- {
- $params['data'][] = 'FILTER DATA #2';
- return $params;
- },
- ],
- 'RETURN' =>
- [
- function($result)
- {
- $result[] = 'FILTER RESULT #1';
- return $result;
- },
- function($result)
- {
- $result[] = 'FILTER RESULT #2';
- return $result;
- },
- ],
- ]
- ],
- '__signal' => [
- 'baz' =>
- [
- 'PRE_EVENT' =>
- [
- 666 => function($data)
- {
- $data[] = 'SIGNAL PRE_EVENT #1';
- return $data;
- },
- 777 => function($data)
- {
- $data[] = 'SIGNAL PRE_EVENT #2';
- return $data;
- }
- ],
- 'POST_EVENT' =>
- [
- 666 => function($params)
- {
- $params[] = 'SIGNAL POST_EVENT #1';
- return $params;
- },
- 777 => function($params)
- {
- $params[] = 'SIGNAL POST_EVENT #2';
- return $params;
- }
- ]
- ]
- ],
- '__observer' => [
- 'baz' =>
- [
- function($result, $parameters)
- {
- $result[] = 'NOTIFY OBSERVER #1';
- },
- function($result, $parameters)
- {
- $result[] = 'NOTIFY OBSERVER #2';
- },
- ]
- ],
- '__classes' =>
- [
- 'media' => '\ILLI\Net\Media',
- 'config' => '\ILLI\Net\Config',
- ],
- '__proto' =>
- [
- 'baz' => function($data, $bla)
- {
- $data[] = '## EXEC PROTO';
- return $data;
- }
- ]
- ]);
- Class Filter
- {
- public static function baz(array $params = [], \ILLI\Core\Filter $chain)
- {
- $params['data'][] = 'INNER EXTERNAL METHODFILTER';
- return $chain->next($params, $chain);
- }
- }
- $foo->registerMethodFilter('baz', function(array $params = [], \ILLI\Core\Filter $chain)
- {
- $params['data'][] = 'OUTER METHODFILTER';
- return $chain->next($params, $chain);
- });
- $foo->registerMethodFilter('baz', function(array $params = [], \ILLI\Core\Filter $chain)
- {
- $params['data'][] = 'INNER METHODFILTER';
- return $chain->next($params, $chain);
- });
- $foo->registerMethodFilter('baz', [new Filter, 'baz']);
- $result = $foo->baz(['Starting test'], 'bla');
- var_dump($result);
- var_dump($foo);
- /*
- array(9) {
- [0]=>
- string(13) "Starting test"
- [1]=>
- string(14) "FILTER DATA #1"
- [2]=>
- string(14) "FILTER DATA #2"
- [3]=>
- string(18) "OUTER METHODFILTER"
- [4]=>
- string(18) "INNER METHODFILTER"
- [5]=>
- string(27) "INNER EXTERNAL METHODFILTER"
- [6]=>
- string(13) "## EXEC PROTO"
- [7]=>
- string(16) "FILTER RESULT #1"
- [8]=>
- string(16) "FILTER RESULT #2"
- }
- object(root\foz)#6 (15) {
- ["__defaultConfig":protected]=>
- array(0) {
- }
- ["__autoConfig":protected]=>
- array(0) {
- }
- ["__env":protected]=>
- array(0) {
- }
- ["__initConfig":protected]=>
- array(14) {
- ["__run"]=>
- bool(true)
- ["__main"]=>
- string(6) "__main"
- ["__delegate"]=>
- NULL
- ["__adapter"]=>
- array(0) {
- }
- ["__filter"]=>
- array(1) {
- ["baz"]=>
- array(2) {
- ["ARGS"]=>
- array(2) {
- [0]=>
- object(Closure)#7 (1) {
- ["parameter"]=>
- array(1) {
- ["$params"]=>
- string(10) "<required>"
- }
- }
- [1]=>
- object(Closure)#8 (1) {
- ["parameter"]=>
- array(1) {
- ["$params"]=>
- string(10) "<required>"
- }
- }
- }
- ["RETURN"]=>
- array(2) {
- [0]=>
- object(Closure)#9 (1) {
- ["parameter"]=>
- array(1) {
- ["$result"]=>
- string(10) "<required>"
- }
- }
- [1]=>
- object(Closure)#10 (1) {
- ["parameter"]=>
- array(1) {
- ["$result"]=>
- string(10) "<required>"
- }
- }
- }
- }
- }
- ["__proto"]=>
- array(1) {
- ["baz"]=>
- object(Closure)#17 (1) {
- ["parameter"]=>
- array(2) {
- ["$data"]=>
- string(10) "<required>"
- ["$bla"]=>
- string(10) "<required>"
- }
- }
- }
- ["__method"]=>
- array(0) {
- }
- ["__observer"]=>
- array(1) {
- ["baz"]=>
- array(2) {
- [0]=>
- object(Closure)#15 (1) {
- ["parameter"]=>
- array(2) {
- ["$result"]=>
- string(10) "<required>"
- ["$parameters"]=>
- string(10) "<required>"
- }
- }
- [1]=>
- object(Closure)#16 (1) {
- ["parameter"]=>
- array(2) {
- ["$result"]=>
- string(10) "<required>"
- ["$parameters"]=>
- string(10) "<required>"
- }
- }
- }
- }
- ["__signal"]=>
- array(1) {
- ["baz"]=>
- array(2) {
- ["PRE_EVENT"]=>
- array(2) {
- [666]=>
- object(Closure)#11 (1) {
- ["parameter"]=>
- array(1) {
- ["$data"]=>
- string(10) "<required>"
- }
- }
- [777]=>
- object(Closure)#12 (1) {
- ["parameter"]=>
- array(1) {
- ["$data"]=>
- string(10) "<required>"
- }
- }
- }
- ["POST_EVENT"]=>
- array(2) {
- [666]=>
- object(Closure)#13 (1) {
- ["parameter"]=>
- array(1) {
- ["$params"]=>
- string(10) "<required>"
- }
- }
- [777]=>
- object(Closure)#14 (1) {
- ["parameter"]=>
- array(1) {
- ["$params"]=>
- string(10) "<required>"
- }
- }
- }
- }
- }
- ["__class"]=>
- array(0) {
- }
- ["__to"]=>
- array(2) {
- ["string"]=>
- string(8) "toString"
- ["array"]=>
- string(7) "toArray"
- }
- ["__protoprefix"]=>
- string(9) "prototype"
- ["myInitArg1"]=>
- string(13) "my Init Arg 1"
- ["__classes"]=>
- array(2) {
- ["media"]=>
- string(15) "\ILLI\Net\Media"
- ["config"]=>
- string(16) "\ILLI\Net\Config"
- }
- }
- ["__export"]=>
- array(0) {
- }
- ["__Core_Object_tMethodFilter_registry":protected]=>
- array(1) {
- ["baz"]=>
- array(3) {
- [0]=>
- array(2) {
- [0]=>
- *RECURSION*
- [1]=>
- object(Closure)#30 (2) {
- ["this"]=>
- *RECURSION*
- ["parameter"]=>
- array(2) {
- ["$params"]=>
- string(10) "<required>"
- ["$chain"]=>
- string(10) "<required>"
- }
- }
- }
- [1]=>
- array(2) {
- [0]=>
- *RECURSION*
- [1]=>
- object(Closure)#31 (2) {
- ["this"]=>
- *RECURSION*
- ["parameter"]=>
- array(2) {
- ["$params"]=>
- string(10) "<required>"
- ["$chain"]=>
- string(10) "<required>"
- }
- }
- }
- [2]=>
- array(2) {
- [0]=>
- object(root\Filter)#29 (0) {
- }
- [1]=>
- string(3) "baz"
- }
- }
- }
- ["__Core_Object_tAdapter_registry":protected]=>
- array(0) {
- }
- ["__Core_Object_tClass_registry":protected]=>
- array(0) {
- }
- ["__Core_Object_tFilter_registry":protected]=>
- array(1) {
- ["baz"]=>
- array(2) {
- ["ARGS"]=>
- array(2) {
- [0]=>
- array(2) {
- [0]=>
- *RECURSION*
- [1]=>
- object(Closure)#25 (2) {
- ["this"]=>
- *RECURSION*
- ["parameter"]=>
- array(1) {
- ["$params"]=>
- string(10) "<required>"
- }
- }
- }
- [1]=>
- array(2) {
- [0]=>
- *RECURSION*
- [1]=>
- object(Closure)#26 (2) {
- ["this"]=>
- *RECURSION*
- ["parameter"]=>
- array(1) {
- ["$params"]=>
- string(10) "<required>"
- }
- }
- }
- }
- ["RETURN"]=>
- array(2) {
- [0]=>
- array(2) {
- [0]=>
- *RECURSION*
- [1]=>
- object(Closure)#27 (2) {
- ["this"]=>
- *RECURSION*
- ["parameter"]=>
- array(1) {
- ["$result"]=>
- string(10) "<required>"
- }
- }
- }
- [1]=>
- array(2) {
- [0]=>
- *RECURSION*
- [1]=>
- object(Closure)#28 (2) {
- ["this"]=>
- *RECURSION*
- ["parameter"]=>
- array(1) {
- ["$result"]=>
- string(10) "<required>"
- }
- }
- }
- }
- }
- }
- ["__Core_Object_tMethod_registry":protected]=>
- array(0) {
- }
- ["__Core_Object_tObserver_registry":protected]=>
- array(1) {
- ["baz"]=>
- array(2) {
- [0]=>
- array(2) {
- [0]=>
- *RECURSION*
- [1]=>
- object(Closure)#19 (2) {
- ["this"]=>
- *RECURSION*
- ["parameter"]=>
- array(2) {
- ["$result"]=>
- string(10) "<required>"
- ["$parameters"]=>
- string(10) "<required>"
- }
- }
- }
- [1]=>
- array(2) {
- [0]=>
- *RECURSION*
- [1]=>
- object(Closure)#20 (2) {
- ["this"]=>
- *RECURSION*
- ["parameter"]=>
- array(2) {
- ["$result"]=>
- string(10) "<required>"
- ["$parameters"]=>
- string(10) "<required>"
- }
- }
- }
- }
- }
- ["__Core_Object_tSignal_registry":protected]=>
- array(1) {
- ["baz"]=>
- array(2) {
- ["PRE_EVENT"]=>
- array(2) {
- [666]=>
- array(2) {
- [0]=>
- *RECURSION*
- [1]=>
- object(Closure)#21 (2) {
- ["this"]=>
- *RECURSION*
- ["parameter"]=>
- array(1) {
- ["$data"]=>
- string(10) "<required>"
- }
- }
- }
- [777]=>
- array(2) {
- [0]=>
- *RECURSION*
- [1]=>
- object(Closure)#22 (2) {
- ["this"]=>
- *RECURSION*
- ["parameter"]=>
- array(1) {
- ["$data"]=>
- string(10) "<required>"
- }
- }
- }
- }
- ["POST_EVENT"]=>
- array(2) {
- [666]=>
- array(2) {
- [0]=>
- *RECURSION*
- [1]=>
- object(Closure)#23 (2) {
- ["this"]=>
- *RECURSION*
- ["parameter"]=>
- array(1) {
- ["$params"]=>
- string(10) "<required>"
- }
- }
- }
- [777]=>
- array(2) {
- [0]=>
- *RECURSION*
- [1]=>
- object(Closure)#24 (2) {
- ["this"]=>
- *RECURSION*
- ["parameter"]=>
- array(1) {
- ["$params"]=>
- string(10) "<required>"
- }
- }
- }
- }
- }
- }
- ["__Core_Object_tSignal_results":protected]=>
- array(1) {
- ["baz"]=>
- array(2) {
- ["PRE_EVENT"]=>
- array(2) {
- [666]=>
- array(4) {
- [0]=>
- string(13) "Starting test"
- [1]=>
- string(14) "FILTER DATA #1"
- [2]=>
- string(14) "FILTER DATA #2"
- [3]=>
- string(19) "SIGNAL PRE_EVENT #1"
- }
- [777]=>
- array(4) {
- [0]=>
- string(13) "Starting test"
- [1]=>
- string(14) "FILTER DATA #1"
- [2]=>
- string(14) "FILTER DATA #2"
- [3]=>
- string(19) "SIGNAL PRE_EVENT #2"
- }
- }
- ["POST_EVENT"]=>
- array(2) {
- [666]=>
- array(10) {
- [0]=>
- string(13) "Starting test"
- [1]=>
- string(14) "FILTER DATA #1"
- [2]=>
- string(14) "FILTER DATA #2"
- [3]=>
- string(18) "OUTER METHODFILTER"
- [4]=>
- string(18) "INNER METHODFILTER"
- [5]=>
- string(27) "INNER EXTERNAL METHODFILTER"
- [6]=>
- string(13) "## EXEC PROTO"
- [7]=>
- string(16) "FILTER RESULT #1"
- [8]=>
- string(16) "FILTER RESULT #2"
- [9]=>
- string(20) "SIGNAL POST_EVENT #1"
- }
- [777]=>
- array(10) {
- [0]=>
- string(13) "Starting test"
- [1]=>
- string(14) "FILTER DATA #1"
- [2]=>
- string(14) "FILTER DATA #2"
- [3]=>
- string(18) "OUTER METHODFILTER"
- [4]=>
- string(18) "INNER METHODFILTER"
- [5]=>
- string(27) "INNER EXTERNAL METHODFILTER"
- [6]=>
- string(13) "## EXEC PROTO"
- [7]=>
- string(16) "FILTER RESULT #1"
- [8]=>
- string(16) "FILTER RESULT #2"
- [9]=>
- string(20) "SIGNAL POST_EVENT #2"
- }
- }
- }
- }
- ["__Core_Object_tTo_registry":protected]=>
- array(2) {
- ["string"]=>
- array(2) {
- [0]=>
- *RECURSION*
- [1]=>
- string(8) "toString"
- }
- ["array"]=>
- array(2) {
- [0]=>
- *RECURSION*
- [1]=>
- string(7) "toArray"
- }
- }
- ["__Core_Object_tMethodProto_registry":protected]=>
- array(1) {
- ["baz"]=>
- array(2) {
- [0]=>
- *RECURSION*
- [1]=>
- object(Closure)#18 (2) {
- ["this"]=>
- *RECURSION*
- ["parameter"]=>
- array(2) {
- ["$data"]=>
- string(10) "<required>"
- ["$bla"]=>
- string(10) "<required>"
- }
- }
- }
- }
- }
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement