document = new DomDocument('1.0', 'UTF-8'); $this->document->formatOutput = true; } /** * Get new object instance * * @access public * @return static */ public static function create() { return new static(); } /** * Add feed title * * @access public * @param string $title * @return $this */ public function withTitle($title) { $this->feedTitle = $title; return $this; } /** * Add feed url * * @access public * @param string $url * @return $this */ public function withFeedUrl($url) { $this->feedUrl = $url; return $this; } /** * Add website url * * @access public * @param string $url * @return $this */ public function withSiteUrl($url) { $this->siteUrl = $url; return $this; } /** * Add feed date * * @access public * @param DateTime $date * @return $this */ public function withDate(DateTime $date) { $this->feedDate = $date; return $this; } /** * Add feed author * * @access public * @param string $name * @param string $email * @param string $url * @return $this */ public function withAuthor($name, $email = '', $url ='') { $this->authorName = $name; $this->authorEmail = $email; $this->authorUrl = $url; return $this; } /** * Add feed item * * @access public * @param ItemBuilder $item * @return $this */ public function withItem(ItemBuilder $item) { $this->items[] = $item; return $this; } /** * Get DOM document * * @access public * @return DOMDocument */ public function getDocument() { return $this->document; } /** * Build feed * * @abstract * @access public * @param string $filename * @return string */ abstract public function build($filename = ''); }