public function test() { $item = new Item(); $enclosure = (new Enclosure())->setUrl('https://example.com/enclosure.mp3')->setLength(123)->setType('audio/mp3'); $source = (new Source())->setUrl('https://example.com')->setTitle('My Source'); $pubDate = new \DateTime(2001 - 01 - 01, new \DateTimeZone('UTC')); $guid = new Guid(); $ext1 = new \StdClass(); $ext2 = new \StdClass(); $item->setTitle('My Title')->setLink('https://example.com/my-title')->setDescription('My Description')->setAuthor('John Doe <*****@*****.**')->setComments('https://example.com/my-title#comments')->setEnclosure($enclosure)->setPubDate($pubDate)->setSource($source)->setCategories(['cat1', 'cat2'])->addCategory('cat3')->setExtensions([$ext1])->addExtension($ext2)->setGuid($guid); $this->assertEquals('My Title', $item->getTitle()); $this->assertEquals('https://example.com/my-title', $item->getLink()); $this->assertEquals('My Description', $item->getDescription()); $this->assertEquals('John Doe <*****@*****.**', $item->getAuthor()); $this->assertEquals('https://example.com/my-title#comments', $item->getComments()); $this->assertSame($enclosure, $item->getEnclosure()); $this->assertSame(['cat1', 'cat2', 'cat3'], $item->getCategories()); $this->assertSame([$ext1, $ext2], $item->getExtensions()); $this->assertSame($guid, $item->getGuid()); $this->assertSame($pubDate, $item->getPubDate()); $this->assertSame($source, $item->getSource()); }
public function writeItem(RssWriter $rssWriter, Item $item) { $writer = $rssWriter->getXmlWriter(); $writer->startElement('item'); $writer->startElement('title'); $writer->writeCdata($item->getTitle()); $writer->endElement(); $writer->writeElement('link', $item->getLink()); $writer->startElement('description'); $writer->writeCdata($item->getDescription()); $writer->endElement(); if ($item->getAuthor()) { $writer->startElement('author'); $writer->writeCdata($item->getAuthor()); $writer->endElement(); } if ($item->getComments()) { $writer->writeElement('comments', $item->getComments()); } if ($item->getEnclosure()) { $this->writeEnclosure($writer, $item->getEnclosure()); } if ($item->getGuid()) { $writer->startElement('guid'); if (!$item->getGuid()->getIsPermaLink()) { $writer->writeAttribute('isPermaLink', 'false'); } $writer->writeCdata($item->getGuid()->getGuid()); $writer->endElement(); } if ($item->getPubDate()) { $writer->writeElement('pubDate', $item->getPubDate()->format('r')); } if ($item->getSource()) { $this->writeSource($writer, $item->getSource()); } foreach ($item->getExtensions() as $extension) { $rssWriter->writeObject($extension); } $writer->endElement(); }