private function extractFeed(\DOMElement $element) { $feed = new Feed(); foreach (self::$feedPropertiesMapping as $nodeName => $methodName) { $feed->{$methodName}($this->getNodeValueByTagName($element, $nodeName)); } if ($date = $this->getNodeValueByTagName($element, 'updated')) { $feed->setPublishedDate(\DateTime::createFromFormat(\DateTime::ATOM, $date)); } $nodeList = $element->getElementsByTagName('link'); foreach ($nodeList as $nodeResult) { /** @var \DomElement $nodeResult */ if ($nodeResult->getAttribute('rel') === 'alternate') { $feed->setLink($nodeResult->getAttribute('href')); break; } } if (!$feed->getLink()) { $feed->setLink($this->getNodeValueByTagName($element, 'id')); } $feed->setLastFetched(new \DateTime()); return $feed; }
private function hydrateFeed(array $row) { $feed = new Feed(); $feed->setId($row['id']); $feed->setSource($row['source']); $feed->setLink($row['link']); $feed->setDescription($row['description']); $feed->setTitle($row['title']); $feed->setPublishedDate(new \DateTime($row['published_date'])); $feed->setLastFetched(new \DateTime($row['last_fetched'])); $feed->setLastModified(new \DateTime($row['last_modified'])); return $feed; }