Advertisement
fruffl

Filter Example

Aug 20th, 2012
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.95 KB | None | 0 0
  1.  
  2.     $foo = new \ILLI\System\Rand(15);
  3.    
  4.     $foo->virtualMethodAdd('myFunkyGetter', function($val) use ($foo)
  5.     {
  6.         return $foo->getCollection()->offsetGet($val);
  7.     });
  8.    
  9.     $foo->virtualMethodAdd('anotherSetter', function($index, $val) use ($foo)
  10.     {
  11.         return $foo->getCollection()->offsetSet($index, '_________'.$val);
  12.     });
  13.    
  14.     $foo->adapterRegisterTriggerMethod(get_parent_class($foo).'::__set', get_class($foo).'::anotherSetter');
  15.    
  16.    
  17.     $foo->baz = 'bar';
  18.     var_dump($foo->myFunkyGetter('baz')); // string(12) "_________bar"
  19.     var_dump($foo);
  20.  
  21.  
  22. /*
  23.  
  24. object(ILLI\System\Rand)#19 (14) {
  25.   ["__handler":"ILLI\System\Rand":private]=>
  26.   int(53)
  27.   ["__value":"ILLI\System\Rand":private]=>
  28.   string(20) "iwXBnvvkbeahHcANzybm"
  29.   ["__Collection":protected]=>
  30.   object(ILLI\System\Collection)#21 (6) {
  31.     ["__data":"ILLI\System\Collection":private]=>
  32.     array(1) {
  33.       ["baz"]=>
  34.       string(12) "_________bar"
  35.     }
  36.     ["__offsets":"ILLI\System\Collection":private]=>
  37.     array(1) {
  38.       [0]=>
  39.       string(3) "baz"
  40.     }
  41.     ["__indexes":"ILLI\System\Collection":private]=>
  42.     array(1) {
  43.       ["baz"]=>
  44.       int(0)
  45.     }
  46.     ["__iteratorIndex":"ILLI\System\Collection":private]=>
  47.     int(0)
  48.     ["__lastOffsetUpdate":"ILLI\System\Collection":private]=>
  49.     string(3) "baz"
  50.     ["__lastOffsetInsert":"ILLI\System\Collection":private]=>
  51.     NULL
  52.   }
  53.   ["__tSplHashRegister_Address":"ILLI\System\Object":private]=>
  54.   string(32) "0000000069be63820000000065699d75"
  55.   ["__tAdapter_tracesEnabled":"ILLI\System\Object":private]=>
  56.   bool(false)
  57.   ["__tAdapter_traces":"ILLI\System\Object":private]=>
  58.   array(0) {
  59.   }
  60.   ["__tAdapter_hook":protected]=>
  61.   array(1) {
  62.     ["ILLI\System\Object::__set"]=>
  63.     object(ILLI\System\AdapterAlias)#30 (2) {
  64.       ["__TRIGGER":"ILLI\System\AdapterAlias":private]=>
  65.       object(ILLI\System\Method)#32 (3) {
  66.         ["__class":protected]=>
  67.         string(18) "ILLI\System\Object"
  68.         ["__function":protected]=>
  69.         string(5) "__set"
  70.         ["__method":protected]=>
  71.         string(25) "ILLI\System\Object::__set"
  72.       }
  73.       ["__ALIAS":"ILLI\System\AdapterAlias":private]=>
  74.       object(ILLI\System\InvokeMethod)#34 (2) {
  75.         ["__Instance":"ILLI\System\InvokeMethod":private]=>
  76.         *RECURSION*
  77.         ["__Callable":protected]=>
  78.         object(ILLI\System\Method)#35 (3) {
  79.           ["__class":protected]=>
  80.           string(16) "ILLI\System\Rand"
  81.           ["__function":protected]=>
  82.           string(13) "anotherSetter"
  83.           ["__method":protected]=>
  84.           string(31) "ILLI\System\Rand::anotherSetter"
  85.         }
  86.       }
  87.     }
  88.   }
  89.   ["__tObserver_tracesEnabled":"ILLI\System\Object":private]=>
  90.   bool(false)
  91.   ["__tObserver_traces":"ILLI\System\Object":private]=>
  92.   array(0) {
  93.   }
  94.   ["__tObserver_hook":protected]=>
  95.   array(0) {
  96.   }
  97.   ["__tFilter_tracesEnabled":"ILLI\System\Object":private]=>
  98.   bool(false)
  99.   ["__tFilter_traces":"ILLI\System\Object":private]=>
  100.   array(0) {
  101.   }
  102.   ["__tFilter_hook":protected]=>
  103.   array(0) {
  104.   }
  105.   ["__tVirtualMethod_hook":protected]=>
  106.   array(1) {
  107.     ["ILLI\System\Rand"]=>
  108.     array(2) {
  109.       ["myFunkyGetter"]=>
  110.       object(ILLI\System\InvokeClosure)#26 (1) {
  111.         ["__Callable":protected]=>
  112.         object(Closure)#22 (2) {
  113.           ["static"]=>
  114.           array(1) {
  115.             ["foo"]=>
  116.             *RECURSION*
  117.           }
  118.           ["parameter"]=>
  119.           array(1) {
  120.             ["$val"]=>
  121.             string(10) "<required>"
  122.           }
  123.         }
  124.       }
  125.       ["anotherSetter"]=>
  126.       object(ILLI\System\InvokeClosure)#28 (1) {
  127.         ["__Callable":protected]=>
  128.         object(Closure)#27 (2) {
  129.           ["static"]=>
  130.           array(1) {
  131.             ["foo"]=>
  132.             *RECURSION*
  133.           }
  134.           ["parameter"]=>
  135.           array(2) {
  136.             ["$index"]=>
  137.             string(10) "<required>"
  138.             ["$val"]=>
  139.             string(10) "<required>"
  140.           }
  141.         }
  142.       }
  143.     }
  144.   }
  145. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement