Pheasant\Events::trigger PHP 메소드

trigger() 공개 메소드

Triggers an event against the registered handlers
public trigger ( $event, $object )
    public function trigger($event, $object)
    {
        if ($this->_corked) {
            $this->_queue[] = func_get_args();
        } else {
            foreach ((array) $event as $e) {
                $callbacks = $this->_callbacksFor($e);
                foreach ($callbacks as $callback) {
                    call_user_func($callback, $e, $object);
                }
            }
            if (isset($this->_upstream)) {
                $this->_upstream->trigger($event, $object);
            }
        }
        return $this;
    }

Usage Example

예제 #1
0
파일: EventsTest.php 프로젝트: lox/pheasant
 public function testChainingEventObjects()
 {
     $events1 = new Events();
     $events2 = new Events();
     $fired1 = array();
     $fired2 = array();
     $events1->register('*', function () use(&$fired1) {
         $fired1[] = func_get_args();
     });
     $events2->register('*', function () use(&$fired2) {
         $fired2[] = func_get_args();
     });
     $events1->register('*', $events2);
     $events1->trigger('beholdLlamas', new \stdClass());
     $this->assertCount(1, $fired1);
     $this->assertCount(1, $fired2);
     $this->assertEquals('beholdLlamas', $fired2[0][0]);
 }