Используем Yii CVarDumper

  • 1 988
  • Нет комментариев
Yii CVarDumper

Мне не нравится стандартный var_dump(). Он не форматирует свой вывод, каждый раз приходится либо писать теги <pre></pre>, либо смотреть html, чтобы получить более-менее хорошее представление об объекте или массиве. Можно конечно поставить xdebug, но и он далёк от совершенства. К счастью разработчики Yii позаботились о пользователях и сделали для нас класс CVarDumper, который можно использовать вместо var_dump().

Преимущества Yii CVarDumper очевидны, достаточно взглянуть на скриншот. Как мы видим, используя Yii CVarDumper для отладки моделей, массивов или каких-либо объектов мы получаем более полное представление, нежели стандартный var_dump(). Сейчас мы расширим класс CVarDumper своим классом VarDumper, отличие которого будет заключаться только в том, что подсветка кода будет включена по-умолчанию.

Итак, как же использовать Yii CVarDumper в своих проектах?

Всё очень просто, достаточно сделать следующее:

  1. В папке 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);
        }
    }
  2. Всё! Можно использовать: в любом месте приложения пишем VarDumper::dump($yourModel); и наслаждаемся результатом

Официальная документация Yii CVarDumper

Понравилась статья? Оцени её!
1 звезда2 звезды3 звезды4 звезды5 звезд (всего голосов: 1, средняя оценка: 5,00 максимальная 5)
Загрузка...
Комментарии (0)
Добавить комментарий

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