Вход Регистрация
Файл: gapps/vendor/symfony/debug/FatalErrorHandler/UndefinedFunctionFatalErrorHandler.php
Строк: 180
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace SymfonyComponentDebugFatalErrorHandler;

use 
SymfonyComponentDebugExceptionUndefinedFunctionException;
use 
SymfonyComponentDebugExceptionFatalErrorException;

/**
 * ErrorHandler for undefined functions.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class UndefinedFunctionFatalErrorHandler implements FatalErrorHandlerInterface
{
    
/**
     * {@inheritdoc}
     */
    
public function handleError(array $errorFatalErrorException $exception)
    {
        
$messageLen strlen($error['message']);
        
$notFoundSuffix '()';
        
$notFoundSuffixLen strlen($notFoundSuffix);
        if (
$notFoundSuffixLen $messageLen) {
            return;
        }

        if (
!== substr_compare($error['message'], $notFoundSuffix, -$notFoundSuffixLen)) {
            return;
        }

        
$prefix 'Call to undefined function ';
        
$prefixLen strlen($prefix);
        if (
!== strpos($error['message'], $prefix)) {
            return;
        }

        
$fullyQualifiedFunctionName substr($error['message'], $prefixLen, -$notFoundSuffixLen);
        if (
false !== $namespaceSeparatorIndex strrpos($fullyQualifiedFunctionName'\')) {
            $functionName = substr($fullyQualifiedFunctionName, $namespaceSeparatorIndex + 1);
            $namespacePrefix = substr($fullyQualifiedFunctionName, 0, $namespaceSeparatorIndex);
            $message = sprintf('
Attempted to call function "%s" from namespace "%s".', $functionName, $namespacePrefix);
        } else {
            $functionName = $fullyQualifiedFunctionName;
            $message = sprintf('
Attempted to call function "%s" from the global namespace.', $functionName);
        }

        $candidates = array();
        foreach (get_defined_functions() as $type => $definedFunctionNames) {
            foreach ($definedFunctionNames as $definedFunctionName) {
                if (false !== $namespaceSeparatorIndex = strrpos($definedFunctionName, '
\')) {
                    $definedFunctionNameBasename = substr($definedFunctionName, $namespaceSeparatorIndex + 1);
                } else {
                    $definedFunctionNameBasename = $definedFunctionName;
                }

                if ($definedFunctionNameBasename === $functionName) {
                    $candidates[] = '
\'.$definedFunctionName;
                }
            }
        }

        if ($candidates) {
            sort($candidates);
            $last = array_pop($candidates).'"?';
            if (
$candidates) {
                
$candidates = 'e.g. "'.implode('", "', $candidates).'" or "'.$last;
            } else {
                $candidates = '"'.
$last;
            }
            
$message .= "nDid you mean to call ".$candidates;
        }

        return new UndefinedFunctionException(
$message$exception);
    }
}
Онлайн: 2
Реклама