# php - debug

PHP의 디버깅 요소들을 알아보자

# var_dump

인자로 전달된 값을 화면에 출력해주는 함수

$a = [1, 2 ,'jeong'];

var_dump($a);
error_log(var_export($a, 1));

tail -f /var/log/apache2/error.log 터미널을 이용하여 에러로그 파일에 변수를 찍어볼수 있다.

두 가지 방법을 이용해서 변수에 들어있는 값을 확인할 수 있다.

# xdebug

xdebug라는 도구를 이용할 수 있다. 본 포스팅은 우분투 사용기준이므로 참고하자.

우선 설치를 진행한다. 공식 페이지를 참고하자 (opens new window)

$sudo apt-get update
$sudo apt-get install php-xdebug
$sudo apt-get install php-dev

기본적인 설치가 끝나면 /etc/php/version/apache2/conf.d/xdebug.ini 파일이 생성되고 xdebug.so설정이 자동으로 될 것이다.

이렇게 기본적인 설정이 끝나면 php 파일에 xdebug를 이용하여 debug를 진행할 수 있다.

기본적으로 var_dump()가 보기 좋게 변하는 것 뿐아니라 다양한 자체 메소드를 지원하니 알아보도록하자.

<?php
    function fix_string($a)
    {
        echo "Called @ ".
            xdebug_call_file().
            ":".
            xdebug_call_line().
            " from ".
            xdebug_call_function();
    }

    $ret = fix_string(array('Derick'));

?>

<?php
$text = "coding everybody";
$prev_mem = xdebug_memory_usage();
for($i=0; $i<10; $i++){
        $text.=$text;
        echo $i.':'.xdebug_memory_usage().':'.(xdebug_memory_usage()-$prev_mem).':'.strlen($text)."\n";
}
?>

이런 식으로 어느 위치에서 파일이 읽게 되었는지, 메모리는 얼마나 사용하고 있는지, 시간이 얼마나 걸렸는지 등등 다양한 디버깅에 필요한 편의 기능들을 제공한다.

위 내용은 생활코딩 (opens new window)의 xdebug 강의에 나오는 코드내용이다.

이렇게 xdebug를 이용해서 php 디버깅 및 프로파일링을 해볼 수 있다.

© Devlog from jeong