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