/** * Ообъект \Df\Qa\State конструируется на основе $stackLevel + 2, * потому что нам нужно вернуть название метода, * который вызвал тот метод, который вызвал метод caller. * @used-by raiseErrorParam() * @used-by raiseErrorResult() * @used-by raiseErrorVariable() * @param int $offset [optional] * @return \Df\Qa\State */ private static function caller($offset) { return \Df\Qa\State::i(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 3 + $offset)[2 + $offset]); }
/** @return State[] */ private function states() { if (!isset($this->{__METHOD__})) { /** @var State[] $result */ $result = []; /** @var array(array(string => string|int)) $trace */ $trace = array_slice($this->trace(), $this->stackLevel()); /** @var State|null $state */ $state = null; foreach ($trace as $stateA) { /** @var array(string => string|int) $stateA */ $state = State::i($stateA, $state, $this->cfg(self::P__SHOW_CODE_CONTEXT, true)); $result[] = $state; } $this->{__METHOD__} = $result; } return $this->{__METHOD__}; }