synapse\network\synlib\SynapseClient::getTrace PHP Method

getTrace() public method

public getTrace ( $start = 1, $trace = null )
    public function getTrace($start = 1, $trace = null)
    {
        if ($trace === null) {
            if (function_exists("xdebug_get_function_stack")) {
                $trace = array_reverse(xdebug_get_function_stack());
            } else {
                $e = new \Exception();
                $trace = $e->getTrace();
            }
        }
        $messages = [];
        $j = 0;
        for ($i = (int) $start; isset($trace[$i]); ++$i, ++$j) {
            $params = "";
            if (isset($trace[$i]["args"]) or isset($trace[$i]["params"])) {
                if (isset($trace[$i]["args"])) {
                    $args = $trace[$i]["args"];
                } else {
                    $args = $trace[$i]["params"];
                }
                foreach ($args as $name => $value) {
                    $params .= (is_object($value) ? get_class($value) . " " . (method_exists($value, "__toString") ? $value->__toString() : "object") : gettype($value) . " " . @strval($value)) . ", ";
                }
            }
            $messages[] = "#{$j} " . (isset($trace[$i]["file"]) ? $this->cleanPath($trace[$i]["file"]) : "") . "(" . (isset($trace[$i]["line"]) ? $trace[$i]["line"] : "") . "): " . (isset($trace[$i]["class"]) ? $trace[$i]["class"] . (($trace[$i]["type"] === "dynamic" or $trace[$i]["type"] === "->") ? "->" : "::") : "") . $trace[$i]["function"] . "(" . substr($params, 0, -2) . ")";
        }
        return $messages;
    }