Advertisement
fruffl

signal adapter

Nov 3rd, 2012
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.34 KB | None | 0 0
  1.     $test = new \ILLI\Core\Data\Object; // empty object (no methods, no fields)
  2.    
  3.     $test   ->defineMethod('hello', function($name){ var_dump('-- hello: '.$name); return 'hello'; })
  4.         ->defineMethod('world', function($name){ var_dump('-- world: '.$name); return 'world'; })
  5.         ->defineMethod('foooo', function($name){ var_dump('-- foooo: '.$name); return 'foooo'; })
  6.         ->defineMethod('baaar', function($name){ var_dump('-- baaar: '.$name); return 'baaar'; })
  7.    
  8.         ->defineSignal('hello', \ILLI\Core\Pattern\iSignal::POST_CALL, 'world')
  9.         ->defineSignal('foooo', \ILLI\Core\Pattern\iSignal::POST_CALL, 'baaar')
  10.    
  11.         ->defineField('myProp', ['string'], [
  12.             //\ILLI\Core\iField::PROP_FLAG => \ILLI\Core\iField::FLAG_IS_PRIVATE_SET | \ILLI\Core\iField::FLAG_IS_LOCKED,
  13.             \ILLI\Core\iField::PROP_INIT => 'foobar',
  14.             \ILLI\Core\iField::PROP_ON_SET => function($data) use ($test)
  15.             {
  16.                 // trigger hello() on __set()
  17.                 $test->hello($data[\ILLI\Core\iField::CALLBACK_PROP_NEW]);
  18.                 return $data;
  19.             }]);
  20.    
  21.     $test   ->myProp = 'my signal hook';
  22.     /*
  23.         string(24) "-- hello: my signal hook"
  24.         string(24) "-- world: my signal hook"
  25.     */
  26.    
  27.     $test   ->defineAdapter('hello', 'foooo', $test); // delegate helloo to foooo
  28.     $test   ->myProp = 'my signal delegate';
  29.    
  30.     /*
  31.         string(28) "-- foooo: my signal delegate"
  32.         string(28) "-- baaar: my signal delegate"
  33.     */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement