Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- array(1) {
- ["data"]=>
- &array(16) {
- [0]=>
- string(13) "Starting test"
- [1]=>
- string(19) "SIGNAL PRE_EVENT #1"
- [2]=>
- string(19) "SIGNAL PRE_EVENT #2"
- [3]=>
- string(14) "FILTER DATA #1"
- [4]=>
- string(14) "FILTER DATA #2"
- [5]=>
- string(27) "STARTING OUTER METHODFILTER"
- [6]=>
- string(27) "STARTING INNER METHODFILTER"
- [7]=>
- string(13) "## EXEC PROTO"
- [8]=>
- string(25) "ENDING INNER METHODFILTER"
- [9]=>
- string(25) "ENDING OUTER METHODFILTER"
- [10]=>
- string(16) "FILTER RESULT #1"
- [11]=>
- string(16) "FILTER RESULT #2"
- [12]=>
- string(18) "NOTIFY OBSERVER #1"
- [13]=>
- string(18) "NOTIFY OBSERVER #2"
- [14]=>
- string(20) "SIGNAL POST_EVENT #1"
- [15]=>
- string(20) "SIGNAL POST_EVENT #2"
- }
- }
- class foz EXTENDS \ILLI\Core\Collection
- {
- public function baz($data)
- {
- return $this->prototype(__FUNCTION__, get_defined_vars());
- }
- }
- $foo = new foz([
- '__filter' => [
- 'baz' =>
- [
- 'PARAMS' =>
- [
- function($data)
- {
- $data['data'][] = 'FILTER DATA #1';
- return $data;
- },
- function($data)
- {
- $data['data'][] = 'FILTER DATA #2';
- return $data;
- },
- ],
- 'RESULT' =>
- [
- function($data)
- {
- $data['data'][] = 'FILTER RESULT #1';
- return $data;
- },
- function($data)
- {
- $data['data'][] = 'FILTER RESULT #2';
- return $data;
- },
- ]
- ]
- ],
- '__signal' => [
- 'baz' =>
- [
- 'PRE_EVENT' =>
- [
- 666 => function($data)
- {
- $data['data'][] = 'SIGNAL PRE_EVENT #1';
- return $data;
- },
- 777 => function($data)
- {
- $data['data'][] = 'SIGNAL PRE_EVENT #2';
- return $data;
- }
- ],
- 'POST_EVENT' =>
- [
- 666 => function($data)
- {
- $data['data'][] = 'SIGNAL POST_EVENT #1';
- return $data;
- },
- 777 => function($data)
- {
- $data['data'][] = 'SIGNAL POST_EVENT #2';
- return $data;
- }
- ]
- ]
- ],
- '__observer' => [
- 'baz' =>
- [
- function($data)
- {
- $data['data'][] = 'NOTIFY OBSERVER #1';
- return $data;
- },
- function($data)
- {
- $data['data'][] = 'NOTIFY OBSERVER #2';
- return $data;
- },
- ]
- ],
- '__classes' =>
- [
- 'media' => '\ILLI\Net\Media',
- 'config' => '\ILLI\Net\Config',
- ],
- '__proto' =>
- [
- 'baz' => function(&$data)
- {
- $data[] = '## EXEC PROTO';
- return $data;
- }
- ]
- ]);
- $foo->applyMethodFilter('baz', function(array $data = [], \ILLI\Core\Filter $chain)
- {
- $data['data'][] = 'STARTING OUTER METHODFILTER';
- $chain->next($data, $chain);
- $data['data'][] = 'ENDING OUTER METHODFILTER';
- return $data;
- });
- $foo->applyMethodFilter('baz', function(array $data = [], \ILLI\Core\Filter $chain)
- {
- $data['data'][] = 'STARTING INNER METHODFILTER';
- $chain->next($data, $chain);
- $data['data'][] = 'ENDING INNER METHODFILTER';
- return $data;
- });
- $result = $foo->baz(['Starting test']);
- var_dump($result);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement