ФорумПрограммированиеПыхнуть хотите?F.A.Q. → Обработка ошибок в PHP

Обработка ошибок в PHP

  • artoodetoo

    Сообщения: 5146 Репутация: N Группа: в ухо

    Spritz 19 марта 2010 г. 7:18, спустя 3 часа 7 минут 27 секунд

    добавь error_reporting(-1); и ты увидишь

    Strict Standards: Non-static method App::doSmth() should not be called statically in xxx on line nnn

    вот тебе и решение
    ιιlllιlllι унц-унц
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 19 марта 2010 г. 8:23, спустя 1 час 5 минут 24 секунды

    Дуд, ты ж сам знаешь, что пых позволяет вызывать статически не статически объявленные методы. Будет сгенерирован нотайс, но нотайсы мы глушим же, так? =)
  • artoodetoo

    Сообщения: 5146 Репутация: N Группа: в ухо

    Spritz 19 марта 2010 г. 8:25, спустя 2 минуты 17 секунд

    какой-то ты непоследовательный. хочешь видеть, но с закрытыми глазами, так?
    ιιlllιlllι унц-унц
  • Trej Gun

    Сообщения: 5302 Репутация: N Группа: в ухо

    Spritz 19 марта 2010 г. 8:34, спустя 8 минут 46 секунд


    class A{

    public static function printAStatic(){
    echo "static A";
    }

    public function printANonStatic(){
    echo "non-static A";
    }

    }

    $a = A();
    $a->printAStatic();
    $a->printANonStatic();
    A::printAStatic();
    A::printANonStatic();

    // нелюблю пхп

  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 19 марта 2010 г. 19:30, спустя 10 часов 56 минут 19 секунд

    хочется добавить:
    Можно применять вот такой маленький переключатель
        error_reporting(E_ALL);
    ini_set('display_errors', 'off');
    ini_set('html_errors', 'off');
    ini_set('log_errors', 'on');
    ini_set('error_log', $ErrorLogFile);
    ini_set('ignore_repeated_errors', 'off');
    ini_set('ignore_repeated_source', 'on');
    if (PROJECT_DEBUG_MODE) {
    error_reporting(E_ALL | E_NOTICE);
    ini_set('display_errors', 'on');
    ini_set('html_errors', 'on');
    ini_set('log_errors', 'off');
    ini_set('ignore_repeated_errors', 'off');
    ini_set('ignore_repeated_source', 'off');
    }

    Фатальные ошибки будут также логироваться в $ErrorLogFile файле
    Сюда можно добавить установку (set…handler) и удаление установленных (restore…handler) перехватов ошибок и исключений по вкусу.

    Также не стоит забывать об довольно неплохой функции
    bool error_log ( string message [, int message_type [, string destination [, string extra_headers]]] )

    с очень интересными, кроме первого, параметрами (см. мануал)
    Например, её можно использовать для логирования ошибок или исключений в самих пользовательских обработчиках ошибок и исключений.
    Банальный пример:
    function UserExceptionHandler($Exception)
    {
    try {
    $Message = 'Exception with message "' . $Exception->getMessage() . '"';
    Logger::Log($Message, Logger::L_ERROR);
    }
    catch (Exception $Exception) {
    $Message = 'Exсeption in exception handler with message "' . $Exception->getMessage() . '"';
    error_log($Message);
    }
    exit(0);
    }
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 19 марта 2010 г. 19:50, спустя 19 минут 49 секунд

    kostyl, да-да, все это есть, особенно переключатель:
    http://code.google.com/p/bicycle-libraries/source/browse/src/config/main.php 4 последних строки
    http://code.google.com/p/bicycle-libraries/source/browse/src/core/bootstrap.php 6 последних строк

    дальше будет еще интереснее - разные драйвера: просто логирование в файл (ессно формат имени файла можно будет настроить), отправка на было (может быть отложенная), вывод в браузер, логирование через FireBug.

    Вообще может просто прикручу http://framework.zend.com/manual/ru/zend.log.html
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 19 марта 2010 г. 19:56, спустя 6 минут 4 секунды

    да, пожалуй не стоит изобретать велосипед, нужно брать Zend_Log
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 19 марта 2010 г. 20:02, спустя 5 минут 16 секунд

    да его можно взять, так же как и Mail
    уууу, наконец то прилепили хоть какую-то подсветку в мане zendframework... или я давно не был там….
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 20 марта 2010 г. 2:34, спустя 6 часов 32 минуты 26 секунд

    kostyl, давно там подсветка еще с 1.10
    Спустя 10 сек.
    они ман обновили

Пожалуйста, авторизуйтесь, чтобы написать комментарий!