Хотя 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
, которая получает все отслеживаемые переменные и показывает их содержимое:
Нажатие на панель dump
, позволяет получить полную детализацию этих переменных, включая информацию о ссылках, публичных / защищеных / приватных свойствах и методах, неограниченной степени вложенности и т.д .:
В дополнение к бесшовной интеграции с 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