Ejemplo n.º 1
0
 public function testInitServiceEvent()
 {
     $this->assertEquals('blah blah blah', Dummy::saySomething());
     $this->appPkg->addEventListener(Event\Type\System\InitService::toType(), function ($event) {
         $pkgName = $event->getCurrentNode()->getComposerName();
         if ($event->getShortClassName() == 'Dummy') {
             return function () use($pkgName) {
                 $this->pkgName = $pkgName;
                 $this->sentence = 'I hope it will work';
             };
         }
     });
     $ext = $this->appPkg->getExtensions()[0];
     $this->assertEquals(spl_object_hash($ext), spl_object_hash($this->appPkg->getChildNodes()[0]));
     // this event handler would not be triggered
     $ext->addEventListener(Event\Type\System\InitService::toType(), function ($event) {
         $pkgName = $event->getCurrentNode()->getComposerName();
         if ($event->getShortClassName() == 'Dummy') {
             return function () use($pkgName) {
                 $this->pkgName = $pkgName;
                 $this->sentence = "Wanna sleep";
             };
         }
     });
     // fire event by creating a service instance
     $dummy = Dummy::create();
     $this->assertEquals('I hope it will work', $dummy->saySomething());
     $this->assertEquals('phpcrystal/phpcrystaltest', $dummy->getPackageName());
 }
Ejemplo n.º 2
0
 /**
  * @return PHPCrystal\PHPCrystal\Service\Event\Type\InitService
  */
 public function dispatchInitServiceEvent($serviceInstance)
 {
     $initServiceEvent = Event\Type\System\InitService::create($serviceInstance);
     return parent::dispatch($initServiceEvent);
 }