- PVSM.RU - https://www.pvsm.ru -
Несколько дней назад состоялся релиз Symfony 2.6.0 [1], который содержит множество интересных нововведений. Одним из наиболее важных является компонент VarDumper.
VarDumper [2] призван заменить всем известную функцию 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
, которая записывает все запрошенные переменные и кратко показывает их содержимое:
При клике на панель вы получите полное содержимое этих переменных, включая информацию о ссылках, public/protected/private свойствах и методах, неограниченный уровень вложенности и т.д.:
В дополнение к интеграции с отладочной панелью 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 [3], а так же статью Расширенное использование компонента VarDumper [4].
Автор: y0ga
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/php-2/76943
Ссылки в тексте:
[1] релиз Symfony 2.6.0: http://symfony.com/blog/symfony-2-6-0-released
[2] VarDumper: https://github.com/symfony/var-dumper/tree/master
[3] документации компонента VarDumper: http://symfony.com/doc/current/components/var_dumper/introduction.html
[4] Расширенное использование компонента VarDumper: http://symfony.com/doc/current/components/var_dumper/advanced.html
[5] Источник: http://habrahabr.ru/post/245623/
Нажмите здесь для печати.