renderDynamic и CWidget

Необходимо исключить виджет, например меню, из кэширования. Страница кэшируется в контроллере как:


  public function filters(){

    return array(

      array(

        'COutputCache +index',

        'duration' => 60*60*24,

      ),

    );

  }

Потому как виджет application.components.MainMenu выводит свое содержимое - в контроллере добавил функцию:




public function mainMenu(){

  ob_start();

  $this->widget('application.components.MainMenu',array(

    'items'=>array(

    array('label'=>'Главная', 'url'=>array('/site/index')),

    array('label'=>'Новости', 'url'=>array('/news')),

    array('label'=>'Контакты', 'url'=>array('/site/contact')),

    array('label'=>'Информация', 'url'=>array('/page/list', 'book'=>'informaciya')),

    array('label'=>'Вход', 'url'=>array('/site/login'), 'visible'=>Yii::app()->user->isGuest),

    array('label'=>'Выход', 'url'=>array('/site/logout'), 'visible'=>!Yii::app()->user->isGuest)

    ),

  ));	

  $content = ob_get_contents();

  ob_end_clean();

  return $content;

}

Насколько это правильный вариант работы с виджетами которые необходимо исключить из кеширования? Есть еще другие варианты?