Мне не нравится стандартный var_dump(). Он не форматирует свой вывод, каждый раз приходится либо писать теги <pre></pre>, либо смотреть html, чтобы получить более-менее хорошее представление об объекте или массиве. Можно конечно поставить xdebug, но и он далёк от совершенства. К счастью разработчики Yii позаботились о пользователях и сделали для нас класс CVarDumper, который можно использовать вместо var_dump().
Преимущества Yii CVarDumper очевидны, достаточно взглянуть на скриншот. Как мы видим, используя Yii CVarDumper для отладки моделей, массивов или каких-либо объектов мы получаем более полное представление, нежели стандартный var_dump(). Сейчас мы расширим класс CVarDumper своим классом VarDumper, отличие которого будет заключаться только в том, что подсветка кода будет включена по-умолчанию.
Итак, как же использовать Yii CVarDumper в своих проектах?
Всё очень просто, достаточно сделать следующее:
- В папке
protected/components
создаёте файликVarDumper.php
и наполняете его следующим содержимым:class VarDumper extends CVarDumper { /** * Displays a variable. * This method achieves the similar functionality as var_dump and print_r * but is more robust when handling complex objects such as Yii controllers. * @param mixed variable to be dumped * @param integer maximum depth that the dumper should go into the variable. * @param boolean whether the result should be syntax-highlighted */ public static function dump($var,$depth=10,$highlight=true){ echo self::dumpAsString($var,$depth,$highlight); } }
- Всё! Можно использовать: в любом месте приложения пишем
VarDumper::dump($yourModel);
и наслаждаемся результатом
Официальная документация Yii CVarDumper