Кашериование (fragment)

Добрый день.

Осваиваю YII и сразу же после туториала столкнулся со странной реализацией dependency.

CCache сохраняет в кэш массив данных и классов ICacheDependency, а при извлечении из кэша данных по ключу сверяет данные методом из сохраненного ICacheDependency…

То есть при проверке наличия записи в кэше с помощью $this->beginCache(‘id’, $params) (второй вызов), $params не используются!

Поэтому нельзя сделать такое кэширования view, который вызывается из другого view:

<?php $this->beginCache(‘id’, array(

'dependency' =&gt; new CExpressionDependency(&quot;'&quot;. serialize(&#036;models) .&quot;'&quot;)

)); ?>

То есть, было бы логично откэшировать данные view, который использутеся в renderPartial, на основе входных моделей view.

Но это невозможно из-за того, что при повторном вызове не используются зависимости из beginCache (которые сгенерировались новыми), а проверяются данные в CCacheDependency так $this->generateDependentData() != $this->_data.

Не понимаю почему так сделано? Как реализовать кэширование view по входным моделям?