Maintenance mode в Yii

Иногда возникает необходимость закрыть сайт на время обновления или каких-то работ над ним. Такой режим называют по разному, режим обслуживания, реконструкции и т.п. В Yii это реализуется очень просто в конфиге указываем параметр:

'catchAllRequest'=>array(
    'controllerId/actionId',
    // можно передать параметры
    'param1'=>value1,
    'param2'=>value2,
),

controllerId — контроллер, допустим SiteController
actionId — экшен, в контроллере SiteController, допустим actionMaintenance. В экшене рендрим отображение для нашего режима.

Использование приложения Yii в сторонних скриптах\приложениях

Для того чтобы использовать приложение Yii в сторонних скриптах\приложениях, необходимо сначала инициализировать приложение, для этого можно использовать стандартный конфигурационный файл или специально написанный для этих нужд. Напишем файл out.php, который инициализирует наше приложение, его будем подключать в нужном месте стороннего скрипта\приложения.

out.php

// путь до фреймворка
$yii=dirname(__FILE__).'/yii/framework/yii.php';
// путь на конфигурационного файла
$config=dirname(__FILE__).'/protected/config/main.php';

require_once($yii);
// инициализируем приложение
Yii::createWebApplication($config);

Теперь данный файл можно подключить, там где это необходимо.

// подключаем наш файл
include "out.php";
// делаем запрос 
$command = Yii::app()->db->createCommand("SELECT COUNT(*) FROM '{{users}}");
$count = $cmd->queryScalar();
// выполняем экшен(ы)
Yii::app()->runController('site/index');
Yii::app()->runController('articles/list');
//логинем пользователя
$identity = new UserIdentity($username,$password);
if($identity->authenticate())
    Yii::app()->user->login($identity);

Это простой пример, который демонстрирует возможность использования ваших Yii приложений в сторонних скриптах\приложениях.