Последняя стабильная версия: 1.1.9

Рецепты

Система Orphus

Удобная разработка и отладка в Yii

Yii предоставляет достаточно широкие возможности для удобной разработки и отладки. Покажем несколько полезных приёмов.

Включаем профайлер

Для того, чтобы посмотреть, какие запросы к БД происходят и сколько времени тратится на каждый, можно включить встроенный SQL-профайлер. Делается это настройкой компонентов db и log.

main.php:

'db'=>array(// включаем профайлер
        'enableProfiling'=>true,
        // показываем значения параметров
        'enableParamLogging' => true,
),
'log'=>array(
    'class'=>'CLogRouter',
    'routes'=>array(array(
            // направляем результаты профайлинга в ProfileLogRoute (отображается
            // внизу страницы)
            'class'=>'CProfileLogRoute',
            'levels'=>'profile',
            'enabled'=>true,
        ),
    ),
),

Показываем сообщения внизу страницы

Кроме сообщений профайлера, внизу страницы можно показать и все остальные отладочные сообщения:

'log' => array(
    'class' => 'CLogRouter',
    'routes' => array(
        array(
            'class' => 'CWebLogRoute',
            'categories' => 'application',
            'levels'=>'error, warning, trace, profile, info',
        ),
    ),
),

Отдаём сообщения в FireBug

Плагин FireBug для FireFox очень удобен для отладки приложения. Чтобы вывести информацию в его консоль можно воспользоваться следующей конфигурацией:

'log' => array(
    'class' => 'CLogRouter',
    'routes' => array(
        array(
            'class' => 'CWebLogRoute',
            'categories' => 'application',
            'showInFireBug' => true
        ),
    ),
),

Отсылка ошибок почтой

Если необходимо следить за возникновением ошибок, можно отправлять их себе на почту:

'log' => array(
    'class' => 'CLogRouter',
    'routes' => array(
        array(
            'class' => 'CEmailLogRoute',
            'categories' => 'error',
            'emails' => array('sam@rmcreative.ru'),
            'sentFrom' => 'error@yiiframework.ru',
            'subject' => 'Error at YiiFramework.ru'
        ),
    ),
),

Отладка bizRule RBAC

Начиная с Yii 1.1.3 можно включить error_reporting для правил bizRule. Писать их придётся со всеми проверками на существование параметров, зато тихих ошибок больше не будет.

'authManager' => array(
  // показываем ошибки только в режиме отладки
  'showErrors' => YII_DEBUG
),

Дампер для отладки кода

Для более удобного использования встроенного дампера можно использовать следующий компонент:

<?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. Defaults to 10.
     * @param boolean whether the result should be syntax-highlighted
     */
    public static function dump($var,$depth=10,$highlight=true){
        echo self::dumpAsString($var,$depth,$highlight);
    }
}

Отличие от стандартного CVarDumper всего одно — подсветка кода включена по умолчанию.

Используется так:

VarDumper::dump($_SERVER);

Сторонние расширения

Поддержку FirePHP можно получить используя расширения yii-firephp или firephp-logroute.

Также стоит обратить внимание на Yii Debug Toolbar и syslogroute.

Полезные методы и классы

Стоит изучить


  • Автор: Александр Макаров, Sam Dark (rmcreative.ru)
  • Обсуждение и комментарии: …