PhpMigration\Changes\v7dot0\ExceptionHandle::leaveNode PHP Метод

leaveNode() публичный Метод

public leaveNode ( $node )
    public function leaveNode($node)
    {
        /**
         * set_exception_handler() is no longer guaranteed to receive Exception
         * objects
         *
         * @see http://php.net/manual/en/migration70.incompatible.php#migration70.incompatible.error-handling
         */
        if (!$node instanceof Expr\FuncCall || !ParserHelper::isSameFunc($node->name, 'set_exception_handler') || !isset($node->args[0])) {
            return;
        }
        $affected = true;
        $certain = false;
        $callback = $node->args[0]->value;
        if ($callback instanceof Expr\Closure) {
            if (!isset($callback->params[0]) || !isset($callback->params[0]->type)) {
                $affected = false;
                $certain = true;
            } elseif (ParserHelper::isSameClass($callback->params[0]->type, 'Exception')) {
                $affected = true;
                $certain = true;
            }
        }
        if ($affected) {
            $this->addSpot('WARNING', $certain, 'set_exception_handler() is no longer guaranteed to receive Exception objects');
        }
    }
ExceptionHandle