VarDumper — новый компонент в Symfony 2.6

в 13:47, , рубрики: debug, dump, php, symfony, symfony 2, var_dump, Веб-разработка, отладка

Несколько дней назад состоялся релиз Symfony 2.6.0, который содержит множество интересных нововведений. Одним из наиболее важных является компонент VarDumper.

VarDumper призван заменить всем известную функцию var_dump() более современной и функциональной альтернативой — функцией dump().

Перед ее использованием убедимся, что DebugBundle подключен в AppKernel:

// app/AppKernel.php
use SymfonyComponentHttpKernelKernel;
use SymfonyComponentConfigLoaderLoaderInterface;

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

        if (in_array($this->getEnvironment(), array('dev', 'test'))) {
            $bundles[] = new SymfonyBundleDebugBundleDebugBundle();
           // ...
        }
    }

    // ...
}

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

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

namespace AppBundleController;

use SymfonyBundleFrameworkBundleControllerController;

class DefaultController extends Controller
{
    public function indexAction(Request $request)
    {
        dump($this->container, $request);
        // ...
    }
}

При отображении этого контроллера в браузере, вы увидите новую панель dump, которая записывает все запрошенные переменные и кратко показывает их содержимое:

VarDumper — новый компонент в Symfony 2.6 - 1

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

VarDumper — новый компонент в Symfony 2.6 - 2

В дополнение к интеграции с отладочной панелью 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.

Автор: y0ga

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js