/** * Action that displays pages list * @return string */ public function actionIndex() { $pages = Page::find()->orderBy(['created_at' => SORT_DESC]); $count = Yii::$app->cache->lazy(function () use($pages) { return $pages->count(); }, 'PagesCount', 86400, Page::commonTag()); $pagination = new Pagination(['totalCount' => $count]); $pages = Yii::$app->cache->lazy(function () use($pages, $pagination) { return $pages->offset($pagination->offset)->limit($pagination->limit)->all(); }, "Pages:{$pagination->offset}:{$pagination->limit}", 86400, Page::commonTag()); return $this->render('index', ['pages' => $pages, 'pagination' => $pagination]); }
/** * Invalidate model tags. * @return bool */ public function invalidateTags() { /** @var \DevGroup\TagDependencyHelper\TagDependencyTrait $this */ \yii\caching\TagDependency::invalidate($this->getTagDependencyCacheComponent(), [self::commonTag(), Page::commonTag(), $this->objectTag(), NamingHelper::getObjectTag(Page::className(), $this->getPrimaryKey())]); return true; }