Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class foo EXTENDS \ILLI\Base\aBase
- {
- public function setAdapter($trigger, $target, $instance)
- {
- $config = new \ILLI\Base\Component\Delegate\sConfigConstructMethod;
- $config->Context = $instance;
- $config->functionName = $target;
- $adapter = new \ILLI\Base\Component\Delegate\Hook\sConcreteAdapter;
- $adapter->triggerMethodName = get_called_class().'::'.$trigger;
- $adapter->Delegate = new \ILLI\Base\Component\Delegate\Method($config);
- $this->tAdapterHook_register($adapter);
- return $this;
- }
- public function setSignal($trigger, $event, $slot, $target, $instance)
- {
- $config = new \ILLI\Base\Component\Delegate\sConfigConstructMethod;
- $config->Context = $instance;
- $config->functionName = $target;
- $config->strictArguments = false;
- $signal = new \ILLI\Base\Component\Delegate\Hook\sConcreteSignal;
- $signal->triggerMethodName = get_called_class().'::'.$trigger;
- $signal->eventName = $event;
- $signal->slotIdent = $slot;
- $signal->Delegate = new \ILLI\Base\Component\Delegate\Method($config);
- $this->tSignalHook_register($signal);
- return $this;
- }
- public $a;
- public $s;
- public function enableAdapter() { var_dump(__METHOD__); $this->a = TRUE; return $this; }
- public function enableSignal() { var_dump(__METHOD__); $this->s = TRUE; return $this; }
- public function baz($__hello)
- {
- var_dump(__METHOD__.' START');
- if(TRUE === $this->a)
- return $this->tAdapterHook_emit(__METHOD__, ['__world' => $__hello]); // strict args: true
- if(TRUE === $this->s)
- $this->tSignalHook_emit(__Method__, 'pre', [$__hello]); // strict args: false
- var_dump($__hello);
- if(TRUE === $this->s)
- $this->tSignalHook_emit(__Method__, 'post', [$__hello]);
- var_dump(__METHOD__.' END');
- return $this;
- }
- }
- class adapterTarget
- {
- public function target($__world) { var_dump(__METHOD__); var_dump($__world.' World!'); }
- }
- class signalTarget_1
- {
- public function method_1($bla) { var_dump(__METHOD__.':'.$bla); }
- public function method_2($baz) { var_dump(__METHOD__.':'.$baz); }
- }
- class signalTarget_2
- {
- public function method_1($bla) { var_dump(__METHOD__.':'.$bla); }
- public function method_2($baz) { var_dump(__METHOD__.':'.$baz); }
- }
- $foo = new foo;
- $SignalTarget_1 = new SignalTarget_1;
- $SignalTarget_2 = new SignalTarget_2;
- $foo
- ->setAdapter('baz', 'target', new adapterTarget)
- ->setSignal('baz', 'pre', 1, 'method_1', $SignalTarget_1)
- ->setSignal('baz', 'pre', 2, 'method_1', $SignalTarget_2)
- ->setSignal('baz', 'post', 1, 'method_2', $SignalTarget_1)
- ->setSignal('baz', 'post', 2, 'method_2', $SignalTarget_2)
- ->baz('Hello')
- ->enableSignal()
- ->baz('Hello')
- ->enableAdapter()
- ->baz('Hi')
- ;
- string(35) "localhost\illiFW\dev\foo::baz START"
- string(5) "Hello"
- string(33) "localhost\illiFW\dev\foo::baz END"
- string(38) "localhost\illiFW\dev\foo::enableSignal"
- string(35) "localhost\illiFW\dev\foo::baz START"
- string(51) "localhost\illiFW\dev\signalTarget_1::method_1:Hello"
- string(51) "localhost\illiFW\dev\signalTarget_2::method_1:Hello"
- string(5) "Hello"
- string(51) "localhost\illiFW\dev\signalTarget_1::method_2:Hello"
- string(51) "localhost\illiFW\dev\signalTarget_2::method_2:Hello"
- string(33) "localhost\illiFW\dev\foo::baz END"
- string(39) "localhost\illiFW\dev\foo::enableAdapter"
- string(35) "localhost\illiFW\dev\foo::baz START"
- string(42) "localhost\illiFW\dev\adapterTarget::target"
- string(9) "Hi World!"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement