Почему php все еще сообщает об ошибках? - PullRequest
1 голос
/ 05 марта 2020

В библиотеке simplesaml PHP есть код

Logger::maskErrors(E_ALL);
$hidden = in_array(
    self::$HIDE_FROM_DISCOVERY, 
    $metadata['EntityAttributes'][self::$ENTITY_CATEGORY], 
    true
);
Logger::popErrorMask();

Поэтому вместо использования isset($metadata['EntityAttributes'][self::$ENTITY_CATEGORY]) они решили установить для сообщения об ошибке значение 0, а затем восстановить его. Проблема в том, что когда я запускаю его как скрипт, он работает, но когда я подключаю его к платформе, он все равно не работает с ошибкой на этом этапе. Несмотря на то, что я сбросил уровень там, и он действительно был установлен на 0.

Также я слышал, что если вы установили пользовательскую функцию обработчика ошибок, то настройки error_reporting () полностью игнорируются. Но глобальный поиск не возвращает set_error_handler в проекте.

1 Ответ

0 голосов
/ 05 марта 2020

Тем не менее, это было set_error_handler(), я не посмотрел папку поставщика должным образом. Причина, по которой он работал в Laravel:

 public function handleError($level, $message, $file = '', $line = 0, $context = [])
    {
        if (error_reporting() & $level) {
            throw new ErrorException($message, 0, $level, $file, $line);
        }
    }

Но мой фреймворк имеет это:

    public function handleError($code, $message, $filename = '', $line = 0)
    {
        throw new \ErrorException($message, $code, 0, $filename, $line);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...