foo::registerFilter('baz', 'PARAMS', function($params) { $params['data'][] = 'FILTER DATA #1'; return $params; });
foo::registerFilter('baz', 'RETURN', function($result) { $result[] = 'FILTER RESULT #1'; return $result; });
foo::registerMethod('baz', function($data)
{
$data = 'called baz('.$data.')';
$data = (array) $data;
return static::aspectable('baz', get_defined_vars(), function($data, $bla = NULL)
{
$data[] = __METHOD__;
return $data;
});
});
var_dump(foo::baz('hello'));
/*
array(4) {
[0]=>
string(17) "called baz(hello)"
[1]=>
string(14) "FILTER DATA #1"
[2]=>
string(14) "root\{closure}"
[3]=>
string(16) "FILTER RESULT #1"
}
*/
foo::registerMethodProto('baz', function($data, $bla = NULL)
{
$data[] = 'new proto: '.__METHOD__;
return $data;
});
var_dump(foo::baz('hello'));
/*
array(4) {
[0]=>
string(17) "called baz(hello)"
[1]=>
string(14) "FILTER DATA #1"
[2]=>
string(25) "new proto: root\{closure}"
[3]=>
string(16) "FILTER RESULT #1"
}
*/
Comments