Показаны сообщения с ярлыком дебаг. Показать все сообщения
Показаны сообщения с ярлыком дебаг. Показать все сообщения

вторник, 1 февраля 2011 г.

Логирование ошибок в файл Denwer

Как оказалось Denwer не логирует php ошибки в файл, а штука очень даже нужная особенно на фоне борьбы с ошибками. Чтобы он начал логировать, нужно вставить вот такой фрагмент кода в файл .htaccess :
php_value error_reporting E_ALL
php_value display_errors Off
php_value display_startup_errors Off
php_value log_errors On
php_value log_errors_max_len 1024
php_value ignore_repeated_errors Off
php_value ignore_repeated_source Off
php_value report_memleaks On
php_value track_errors Off
php_value html_errors Off
php_value error_log "error.log"

понедельник, 13 декабря 2010 г.

imTimer профайлер для PHP

Когда то он находился на блоге imbolc, которого уже давно нет. Вот поэтому blogspot рулит. Думаю блоги эти будут жить пока есть Google :)
Код - пример #1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
function imTimer($name= 'default', $mode= ''){
    static $timers= array();
    $now=microtime(true);
    if(!isset($timers[$name])){
        $timers[$name]= $now;
        return 0;
    }
    $ret= $now - $timers[$name];
    if($mode == 'reset')
        $timers[$name]= $now;
    return round($ret, 5);
}

// пример использования

// запускаем
imTimer();

... // здесь типа много кода

imTimer('temp');

function temp() {
... // кучка говнокода
}
// выводим время выполнения функции temp
echo imTimer('temp');

... // еще код

// выводим время выполнения всего скрипта
echo imTimer();

вторник, 9 ноября 2010 г.

Дебагинг в PHP

Есить куча вариантов дебага.

Самый простой
Код - пример #1
1
print_r($foo);
Получше:
Код - пример #1
1
2
echo '<pre>';
print_r($foo);
Я использую такую функцию:
Код - пример #1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function deb($str, $name = '') {
    $name = ($name)?$name:gettype($str);
    $aCol = array('#FFF082','#BAFF81','#BAFFD7','#F0D9D7');
    $color = $aCol[RAND(0,3)];
    echo "<PRE><div style='background-color: $color'><b>$name = <b>";
    if (is_array($str)) echo '<br>';
    print_r($str);
    echo "</div></PRE><br>";
}

// Пример использования

deb($foo);

// или

deb($foo, 'foo');