PHP установил предупреждения как фатальные - PullRequest
2 голосов
/ 13 июля 2010

Есть ли способ указать на уровне php.ini или apache, что выполнение скрипта должно быть остановлено при любых предупреждениях? Я пытался искать через Google и StackOverflow, но пока не смог найти нужную информацию. Я знаю о функции set_error_handler (), но я собираюсь сделать это на уровне php.ini.

Ответы [ 4 ]

1 голос
/ 13 июля 2010

Так что, как всегда, немного сложно доказать отрицание, как вы просите.Около 14 секунд поиска в Google приводит к полному списку директив php.ini:

http://www.php.net/manual/en/ini.list.php

На этой странице есть только 4 экземпляра слова «предупреждение», поэтому выглядитэкзотическая идея не вариант.

1 голос
/ 13 июля 2010

AFAIK, нет способа сделать что-то подобное на уровне конфигурации.Тем не менее, я думаю, что это можно сделать с помощью функции PHP set_error_handler.

http://php.net/manual/en/function.set-error-handler.php

В пределах установленной вами функции можно обнаружить предупреждение с помощью параметра ERROR_TYPE и остановитьскрипт с использованием exit или die.

0 голосов
/ 15 мая 2019

Это возможно с пользовательской функцией ошибки.

//Custom error function (even triggers for warnings)
set_error_handler(function($severity, $message, $file, $line) {
    if (error_reporting() & $severity) {
        throw new ErrorException($message, 0, $severity, $file, $line);
    }
});

В проекте, в котором я использую этот код, я сделал эту маленькую вспомогательную функцию для переключения в разных частях проекта:

function updateErrorHandling($state) {

    //custom error handler or standard
    if ($state > 1) {

        //Custom error function (even triggers for warnings)
        set_error_handler(function($severity, $message, $file, $line) {
            if (error_reporting() & $severity) {
                throw new ErrorException($message, 0, $severity, $file, $line);
            }
        });

    } else {

        //Standard Exception Handling on / off
        ini_set('display_errors', $state);
        ini_set('display_startup_errors', $state);
        error_reporting($state == 1 ? E_ALL : 0);

    }
}
0 голосов
/ 29 января 2015

Я бы порекомендовал xdebug.halt_level

...