A set of PHP classes for writing simple RSS feeds
PHP
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Tests
.gitignore
Channel.php
Feed.php
Item.php
README.mkdn
Tag.php
Xml.php
composer.json
phpunit.xml.dist

README.mkdn

README

phparess is a set of PHP classes for generating RSS content, based on the 2.0 spec. It consists of three public classes that are used to define feed data:

  • Feed represents a complete RSS feed
  • Channel represents the channel of an RSS feed
  • Item represents an individual item in the channel

Both the channel and individual item can be created with their constructor, passing in an array of spec-defined properties to assign.

Channels

For example, I can create a new channel by saying:

$channel = new Channel(array(
	"title"=>"tylerchr's projects",
	"link"=>"http://github.com/tylerchr",
	"description"=>"tylerchr writes code on github"
));

We can define additional properties, such as language, copyright, and lastBuildDate the same way.

Items

Items are created identically to channels, by using the constructor:

$item = new Item(array(
	"title"=>"phparess (tylerchr project)",
	"link"=>"http://github.com/tylerchr/phparess",
	"description"=>"phparess is for generating simple RSS content"
));

Again, additional item properties can be added into the array, given that they are part of the RSS 2.0 spec. Non-specced properties will not be added.

We add items to our channel by saying $channel->addItem($item) and if we want to add many items at once, we can say $channel->addItems($items) passing in an array of Item objects.

The final feed

When we want to get the complete feed, we create a Feed object, set the channel, and then we can echo it back out. This is trivial, and to be true to spec, we should add a MIME type declaration at the top:

header('Content-type: application/rss+xml');	
$rss = new Feed();
$rss->setChannel($channel);
echo $rss;

Feedback

Feedback is welcome, but keep in mind that this is a work in progress.