Esempio n. 1
0
 /**
  * Ообъект \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]);
 }
Esempio n. 2
0
 /** @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__};
 }