Example #1
0
 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());
 }
Example #2
0
 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();
 }