Skip to content
Standalone module to generate standards-compliant RSS 0.92, 2.0 and Atom feeds from a single data source. Via Composer and Laravel 3 bundle.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


This bundle lets you generate RSS 2.0, RSS 0.92 and Atom feeds by just setting the data you want - and Feeder will take care of mapping it to the target standard-specific output. All Feeder scripts are in public domain and require PHP 5+.

Sample generated feeds, detailed API and description | Laravel bundle | Forum thread

It's used in real action on's article feed: RSS 2.0 | RSS 0.92 | Atom [all three are generated using the code almost identical to the example below].


Before creating this I have dug through every bit in those specifications (RSS 2.0, 0.92 and Atom) so it should be pretty complete.

  • Pretty output with indentation
  • W3C Validation passed for all 3 formats
  • Unicode-aware
  • You can generate feeds from YAML text files without coding anything - details


$feed = Feed::make();

     ->author   ('Proger_XP')
     ->title('My feed')
     ->description('Sample feed generated by PHP Feeder.')
     ->copyright('(c) '.date('Y').'')
     ->permalink(route('feed', 'rss20'))

foreach ($posts as $post) {
                ->description()->add('html', $post['synopsis'])->up()

// this is a shortcut for calling $feed->feed()->send(...);
// you can also just $feed->Rss20(), Rss092() or Atom();



Available under proger/feeder at Packagist.

Laravel 3

php artisan bundle:install feeder

example-*.php and smile.png files are only samples and are not required for work. .htaccess and entry.php are only used if you're using TextFeeder. chained.php is only used if you're using chained calls (like in the example above). feeder.php is the core set of classes that is self-contained.


'feeder' => array(
  // when the bundle is started all Feeder classes are automatically loaded
  // so you can either autostart it or have autoloader mappings (more efficient).
  //'auto' => true,

  'autoloads' => array(
    'map' => array(
      'Feed' => '(:bundle)/chained.php',

      'FeedChannel' => '(:bundle)/feeder.php',
      'FeedEntry' => '(:bundle)/feeder.php',
      'Feeder' => '(:bundle)/feeder.php',
      'TextFeeder' => '(:bundle)/feeder.php',
      'FeedOut' => '(:bundle)/feeder.php',

The list of autoloader mappings depends on your application - if you're just using chained calls (as in the example above) you only need the first Feed => chained mapping; otherwise you might want to autostart the bundle if you're unsure. You can also define IoC containers for starting the bundle when it's used.

You can’t perform that action at this time.