Advertisement
fruffl

aspect in php

Jan 19th, 2013
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.04 KB | None | 0 0
  1.     foo::registerFilter('baz', 'PARAMS', function($params) { $params['data'][] = 'FILTER DATA #1'; return $params; });
  2.     foo::registerFilter('baz', 'RETURN', function($result) { $result[] = 'FILTER RESULT #1'; return $result; });
  3.     foo::registerMethod('baz', function($data)
  4.     {
  5.         $data = 'called baz('.$data.')';
  6.         $data = (array) $data;
  7.         return static::aspectable('baz', get_defined_vars(), function($data, $bla = NULL)
  8.         {
  9.             $data[] = __METHOD__;
  10.             return $data;
  11.         });
  12.     });
  13.  
  14.     var_dump(foo::baz('hello'));
  15. /*
  16. array(4) {
  17.   [0]=>
  18.   string(17) "called baz(hello)"
  19.   [1]=>
  20.   string(14) "FILTER DATA #1"
  21.   [2]=>
  22.   string(14) "root\{closure}"
  23.   [3]=>
  24.   string(16) "FILTER RESULT #1"
  25. }
  26. */
  27.    
  28.     foo::registerMethodProto('baz', function($data, $bla = NULL)
  29.     {
  30.         $data[] = 'new proto: '.__METHOD__;
  31.         return $data;
  32.     });
  33.  
  34.     var_dump(foo::baz('hello'));
  35. /*
  36. array(4) {
  37.   [0]=>
  38.   string(17) "called baz(hello)"
  39.   [1]=>
  40.   string(14) "FILTER DATA #1"
  41.   [2]=>
  42.   string(25) "new proto: root\{closure}"
  43.   [3]=>
  44.   string(16) "FILTER RESULT #1"
  45. }
  46. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement