VarDumper 는 심포니 프레임워크에 포함된 라이브러리로 PHP 내장 함수인 var_dump() 에 비해 결과를 예쁘고 깔끔하고 가독성 좋게 만들어주므로 디버깅이나 테스트할 때 유용합니다.

라라벨(laravel) 5의 dd, dump 헬퍼 함수는 VarDumper 를 사용하고 있습니다.


설치

1. composer 로 설치하는 게 제일 간단합니다. 콘솔에서 다음 composer 명령을 실행합니다.

$ composer require "symfony/var-dumper"
 
Using version ^2.6 for symfony/var-dumper
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Removing symfony/var-dumper (v2.6.6)
  - Installing symfony/var-dumper (v2.6.7)
    Loading from cache
BASH

2. 또는 composer.json 의 require 항목에 다음 내용을 추가합니다

"require": {
     "symfony/var-dumper": "^2.6"
},
JS

컴포저 설정이 변경되었으니 composer.update 명령어를 실행합니다.

$ composer update
JS


사용

기존 var_dump 대신 dump() 함수를 사용하면 됩니다. 

src/dump.php

<?php
require 'vendor/autoload.php';
$array = [
        'a string' => 'hello world',
        'an array' =>
                [
                        'email' => 'myaddr@gmail.com',
                        'name' => 'my name',
                ],
        'an int' => 1,
        'a float' => 1.234,
        'a boolean' => true,
        'an emyty array' => [],
        'site' => 'http://lesstif.com',
];
dump($array);
?>
PHP

VarDumper 는 콘솔에서 실행할 경우 출력을 칼라로 예쁘게 표시해 주고 웹 서버에서 실행할 경우 HTML 로 출력해 줍니다.

특히 배열의 원소 갯수가 몇 개인지 표시해 주므로 배열 관련 디버깅시에 유용합니다.


콘솔에서 실행

$ php src/dump.php
CODE


웹에서 실행

array:7 [
   "a string" => "hello world"
   "an array" => array:2 [
   "email" => "myaddr@gmail.com"
   "name" => "my name"
   ]
   "an int" => 1
   "a float" => 1.234
   "a boolean" => true
   "an emyty array" => []
   "site" => "http://lesstif.com"
  ]
  


Laravel 의 dump(), dd() 헬퍼 사용

라라벨의 헬퍼 함수중 dump(), dd() 라는 유용한 함수가 있습니다.

이 함수는 심포니의 VarDumper 패키지를 래핑해서 사용이 편리하지만 라라벨에서만 사용할 수 있는 단점이 있으니 라라벨 프로젝트가 아닌 경우 다음 유틸리티 클래스를 사용하면 됩니다.


Ref