public function __construct($role = parent::DOCUMENT_ROLE, BNodeLabeler $labeler = null) { parent::__construct($role, $labeler); $this->transitionTable[self::STATE_START][self::STATE_DOCUMENT] = function () { $this->beginDocument(); }; $this->transitionTable[self::STATE_DOCUMENT][self::STATE_FINISH] = function () { $this->finishDocument(); }; $this->transitionTable[self::STATE_OBJECT][self::STATE_DOCUMENT] = function () { $this->finishSubject(); }; $this->transitionTable[self::STATE_OBJECT][self::STATE_SUBJECT] = function () { $this->finishSubject(); }; }
public function __construct($role = parent::DOCUMENT_ROLE, BNodeLabeler $labeler = null) { parent::__construct($role, $labeler); // Unfortunately, this is a bit ugly since PHP 5.3 can't call array($this, 'foo') directly // Also due to PHP 5.3 scope issues, used functions need to be public. // TODO: seek better solution (or move to PHP 5.4+) $self = $this; $this->transitionTable[self::STATE_START][self::STATE_DOCUMENT] = function () use($self) { $self->beginDocument(); }; array($this, 'beginDocument'); $this->transitionTable[self::STATE_DOCUMENT][self::STATE_FINISH] = function () use($self) { $self->finishDocument(); }; $this->transitionTable[self::STATE_OBJECT][self::STATE_DOCUMENT] = function () use($self) { $self->finishSubject(); }; $this->transitionTable[self::STATE_OBJECT][self::STATE_SUBJECT] = function () use($self) { $self->finishSubject(); }; }