em->createSimpleCriteria(NewsCategory::getClass(), null, array('id' => 'DESC')); return $criteria->toQuery()->fetchArray(); } public function getNewsCategory(string $urlPart): ?NewsCategory { $criteria = $this->em->createSimpleCriteria(NewsCategory::getClass(), array('urlPart' => $urlPart)); return $criteria->toQuery()->fetchSingle(); } public function getNewsCategoryById(int $id) { return $this->em->find(NewsCategory::getClass(), $id); } public function saveCategory(NewsCategory $category) { $this->em->persist($category); } public function deleteCategory(NewsCategory $category) { $this->em->remove($category); } public function getNewsItemById(int $id) { return $this->em->find(NewsItem::getClass(), $id); } public function saveNews(NewsItem $news) { $this->em->persist($news); } public function deleteNews(NewsItem $news) { $this->em->remove($news); } public function getNewsTagById(int $id) { return $this->em->find(NewsTag::getClass(), $id); } public function getNewsByTagName(string $name) { $criteria = $this->em->createSimpleCriteria(NewsTag::getClass(), array('name' => $name), array('name' => 'ASC')); return $criteria->toQuery()->fetchArray(); } public function getTags(string $name = null) { $matches = null; if($name) {$matches = array('name' => $name);} $criteria = $this->em->createSimpleCriteria(NewsTag::getClass(), $matches, array('name' => 'ASC')); return $criteria->toQuery()->fetchArray(); } public function saveTag(NewsTag $tag) { $this->em->persist($tag); } public function deleteTag(NewsTag $tag) { $this->em->remove($tag); } }