public function addNewItem($title, $link, $id_channel) { $item = new RssItem($link, $title, $id_channel); if (!$item->isExistsItemByUrl()) { $item->insertIntoTable(); return true; } throw new \Exception('These item with ' . $link . ' exist! Does not added to channel'); }
public function testUpdateItemInDatabase() { $rssItem = new RssItem('test.link.pl', 'tytul', '5000'); DB::beginTransaction(); $rssItem->insertIntoTable(); $tmp = $rssItem->getArray(); $rssItemDeleteItem = new RssItem($tmp['title'], $tmp['link'], '5000', $tmp['id_item']); $rssItemDeleteItem->updateDataInDatabase(); $this->seeInDatabase('rss_item_for_channel', ['link' => 'tytul']); DB::rollBack(); }
/** * Add to database item of rss * @param $contentOfXml * @param $idChannel */ private function addToDatabase($contentOfXml, $idChannel) { $uri = $this->address->getAddressUri(); $rss = new SimpleXmlElement($contentOfXml); if (isset($rss->channel) && !empty($rss->channel)) { foreach ($rss->channel->item as $entry) { $item = new RssItem((string) $entry->link, (string) $entry->title, $idChannel); $item->insertIntoTable(); } } else { $item = new RssItem($uri, (string) $rss->title, $idChannel); $item->insertIntoTable(); } }