Новое в Symfony 2.6: Компонент VarDumper

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

Компонент VarDumper предназначен заменить известную функцию PHP var_dump() более современным и полнофункциональным вызовом dump(). Перед использованием убедитесь, что бандл DebugBundle включен в ядро приложения:

// 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  и объект запроса:

namespace AppBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

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

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

15790494679_98afd17292_o

Нажатие на панель dump, позволяет получить полную детализацию этих переменных, включая информацию о ссылках, публичных / защищеных / приватных свойствах и методах, неограниченной степени вложенности и т.д .:

15976525275_9eace1ae0e_o

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

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

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

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

$ composer require --dev tchwork/debug-bundle

Наконец, не забудьте ознакомиться с документацией компонента VarDumper, в том числе статьей «Расширенное использование компонента VarDumper«.

Источник: http://symfony.com/blog/new-in-symfony-2-6-vardumper-component

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

семнадцать − 3 =