Advertisement
fruffl

AOP Static

Aug 21st, 2012
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.76 KB | None | 0 0
  1. <?PHP
  2.  
  3.     \ILLI\System\StaticObject::push('the');
  4.     \ILLI\System\StaticObject::push('quick');
  5.     \ILLI\System\StaticObject::push('brown');
  6.     \ILLI\System\StaticObject::push('fox');
  7.    
  8.     \ILLI\System\StaticObject::virtualMethodAdd('mypush', function($val)
  9.     {
  10.         $val['value'] = 'mypush----'.$val['value'];
  11.         return $val;
  12.     });
  13.     \ILLI\System\StaticObject::virtualMethodAdd('mypop', function($val)
  14.     {
  15.         $val = 'pop-----'.$val;
  16.         return $val;
  17.     });
  18.     \ILLI\System\StaticObject::virtualMethodAdd('mypeek', function($val)
  19.     {
  20.         $val = 'peek----'.$val;
  21.         return $val;
  22.     });
  23.    
  24.     $foo = \ILLI\System\StaticObject::instanceGet();
  25.     \ILLI\System\StaticObject::filterRegisterEventMethod('args', get_class($foo).'::push', get_class($foo).'::mypush');
  26.     \ILLI\System\StaticObject::filterRegisterEventMethod('return', get_class($foo).'::pop', get_class($foo).'::mypop');
  27.     \ILLI\System\StaticObject::filterRegisterEventMethod('return', get_class($foo).'::peek', get_class($foo).'::mypeek');
  28.    
  29.     \ILLI\System\StaticObject::push('jumps');
  30.     \ILLI\System\StaticObject::push('over');
  31.     \ILLI\System\StaticObject::push('the');
  32.     \ILLI\System\StaticObject::push('lazy');
  33.     \ILLI\System\StaticObject::push('dog');
  34.    
  35.     foreach(\ILLI\System\StaticObject::instanceGet() as $baz) var_dump($baz);
  36.     var_dump('======');
  37.     foreach(['pop', 'pop', 'peek'] as $call) var_dump(\ILLI\System\StaticObject::instanceGet()->$call());
  38.     var_dump('======');
  39.  
  40.  
  41. ?>
  42. string(3) "the"
  43. string(5) "quick"
  44. string(5) "brown"
  45. string(3) "fox"
  46. string(15) "mypush----jumps"
  47. string(14) "mypush----over"
  48. string(13) "mypush----the"
  49. string(14) "mypush----lazy"
  50. string(13) "mypush----dog"
  51. string(6) "======"
  52. string(21) "pop-----mypush----dog"
  53. string(22) "pop-----mypush----lazy"
  54. string(21) "peek----mypush----the"
  55. string(6) "======"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement