[Перевод] VarDumper — новый компонент в Symfony 2.6

Несколько дней назад состоялся релиз Symfony 2.6.0, который содержит множество интересных нововведений. Одним из наиболее важных является компонент VarDumper.VarDumper призван заменить всем известную функцию var_dump () более современной и функциональной альтернативой — функцией dump ().Перед ее использованием убедимся, что DebugBundle подключен в AppKernel:

// app/AppKernel.php use Symfony\Component\HttpKernel\Kernel; use Symfony\Component\Config\Loader\LoaderInterface;

class AppKernel extends Kernel { public function registerBundles () { $bundles = array ( // … );

if (in_array ($this→getEnvironment (), array ('dev', 'test'))) { $bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle (); // … } }

// … } Теперь вы можете заменить все вызовы функции var_dump () на новый и более короткий dump (). В отличие от var_dump (), вы можете безопасно использовать dump (), чтобы отобразить содержимое любых переменных, включая переменные с циклическими ссылками, такие как сущности Doctrine.

Рассмотрим, для примера, контроллер, который целиком выводит контейнер Symfony и объект Request:

namespace AppBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class DefaultController extends Controller { public function indexAction (Request $request) { dump ($this→container, $request); // … } } При отображении этого контроллера в браузере, вы увидите новую панель dump, которая записывает все запрошенные переменные и кратко показывает их содержимое:

1cf4370742608e2a20e65bbb8b5a2ff5.png

При клике на панель вы получите полное содержимое этих переменных, включая информацию о ссылках, public/protected/private свойствах и методах, неограниченный уровень вложенности и т.д.:

1ff65d6c34dbff52f66fa1c385672861.png

В дополнение к интеграции с отладочной панелью Symfony, компонент достаточно умен, чтобы обнаружить, используете ли вы exit или die () в коде. В этих случаях переменные пишутся в стандартный вывод.

VarDumper также содержит тег {% dump %} и функцию {{ dump () }} для проверки переменных прямо из шаблонов Twig. Тег {% dump %} показывает переменные в отладочной панели (например, {% dump variable1, variable2%}). Отличный вариант, когда вывод шаблона не должен изменяться.

Функция {{ dump () }} наоборот отображает содержимое переменных прямо в шаблоне (например, {{ dump (variable1, variable2) }}).

Компонент VarDumper поставляется с Symfony начиная с версии 2.6.0, но если какие-то ваши проекты застряли на версиях 2.3, 2.4 или 2.5, вы можете установить debug-bundle следующим образом:

$ composer require --dev tchwork/debug-bundle Подробнее можно почитать в документации компонента VarDumper, а так же статью Расширенное использование компонента VarDumper.

© Habrahabr.ru