checkArticle($id); $user = $this->getLoginUser(); $validator = new ArticleValidator(); $validator->checkOwner($user->id, $article->owner_id); $article->deleted = 1; $article->update(); $this->recountUserArticles($user); $this->rebuildArticleIndex($article); $this->eventsManager->fire('Article:afterDelete', $this, $article); } protected function recountUserArticles(UserModel $user) { $userRepo = new UserRepo(); $articleCount = $userRepo->countArticles($user->id); $user->article_count = $articleCount; $user->update(); } protected function rebuildArticleIndex(ArticleModel $article) { $sync = new ArticleIndexSync(); $sync->addItem($article->id); } }