PHPackages                             augmentedlogic/feedibus - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. augmentedlogic/feedibus

ActiveLibrary

augmentedlogic/feedibus
=======================

RSS writer library with support for most of the RSS specification, including Media RSS and GeoRSS

v0.9.1(1mo ago)110MITPHPPHP &gt;=8.4

Since Jul 13Pushed 1mo agoCompare

[ Source](https://github.com/augmentedlogic/feedibus)[ Packagist](https://packagist.org/packages/augmentedlogic/feedibus)[ Docs](https://github.com/augmentedlogic/php-feedibus)[ RSS](/packages/augmentedlogic-feedibus/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependenciesVersions (8)Used By (0)

feedibus
========

[](#feedibus)

This originally started as a a fork of [suin/php-rss-writer](https://github.com/suin/php-rss-writer) (in July 2026), but has become a project of its own. The aim to make it a more complete library including Channel Image, Media RSS, GeoRSS support and PHP 8 compatibility.

Changelog
=========

[](#changelog)

v0.9

- support for GeoRSS (at least the basics)
- item-&gt;link() does the same as item-&gt;url()

v0.8.1

- added  tag for Item
- added Media RSS media:hash tag

v0.7

- documentation fixes

v0.6

- support for MediaRSS (most of it anyway, there are endless options)

v0.5

- namespace change
- now available on packagist

v0.2

- added ChannelImage class
- some preliminary typing for php 8

Installation
------------

[](#installation)

```
composer require augmentedlogic/feedibus

```

Usage
-----

[](#usage)

```
use com\augmentedlogic\feedibus\Channel;
use com\augmentedlogic\feedibus\ChannelImage;
use com\augmentedlogic\feedibus\Feed;
use com\augmentedlogic\feedibus\Item;
use com\augmentedlogic\feedibus\MediaItem;

$feed = new Feed();

$channelImage = new ChannelImage();
$channelImage->url("https://example.com/icon.png")
             ->link("https://example.com/icon.png")
             ->title("Acme Ltd Logo");

$channel = new Channel();
$channel
    ->title('Channel Title')
    ->description('Channel Description')
    ->url('http://blog.example.com')
    ->feedUrl('http://blog.example.com/rss')
    ->language('en-US')
    ->image($channelImage)
    ->copyright('Copyright 2012, Foo Bar')
    ->pubDate(strtotime('Tue, 21 Aug 2012 19:50:37 +0900'))
    ->lastBuildDate(strtotime('Tue, 21 Aug 2012 19:50:37 +0900'))
    ->ttl(60)
    ->pubsubhubbub('http://example.com/feed.xml', 'http://pubsubhubbub.appspot.com') // This is optional. Specify PubSubHubbub discovery if you want.
    ->appendTo($feed);

// Blog item
$item = new Item();
$item
    ->title('Blog Entry Title')
    ->description('Blog body')
    ->contentEncoded('Blog body')
    ->url('http://blog.example.com/2012/08/21/blog-entry/')
    ->author('John Smith')
    ->pubDate(strtotime('Tue, 21 Aug 2012 19:50:37 +0900'))
    ->guid('http://blog.example.com/2012/08/21/blog-entry/', true)
    ->preferCdata(true) // By this, title and description become CDATA wrapped HTML.
    ->source('http://blog.example.com/')
    ->appendTo($channel);

// Media RSS item
$mediaitem = new MediaItem();
$mediaitem ->url("https://www.example.com")
           ->title("Oh my wonderful RSS", "plain")
           ->filesize(5020281)
           ->filetype("audio/mpeg")
           ->medium("audio")
           ->width(1920)
           ->height(1080)
           ->bitrate(2500)
           ->framerate(25)
           ->samplingrate(44.1)
           ->channels(2)
           ->lang("en")
           ->thumbnail("https://example.com/image.jpg")
           ->thumbnailWidth(900)
           ->thumbnailHeight(600)
           ->expression("full")
           ->description("a wonderful song")
           ->keywords(array("rock", "blues"))
           ->playerUrl("https://example.com")
           ->playerWidth(1920)
           ->playerHeight(1080);
           ->hash('bf1ab2d7290a1bed086fdab56f268f48', 'md5');

$item = new Item();
$item
    ->title('Some Media RSS Entry')
    ->description('Podcast body')
    ->url('http://podcast.example.com/2012/08/21/podcast-entry/')
    ->media($mediaitem)
    ->appendTo($channel);

// Podcast item
$item = new Item();
$item
    ->title('Some Podcast Entry')
    ->description('Podcast body')
    ->url('http://podcast.example.com/2012/08/21/podcast-entry/')
    ->enclosure('http://podcast.example.com/2012/08/21/podcast.mp3', 4889, 'audio/mpeg')
    ->appendTo($channel);

echo $feed; // or echo $feed->render();
```

Output:

```

    Channel Title
    http://blog.example.com
    Channel Description
    en-US

      https://example.com/icon.png
      Acme Ltd Logo
      https://example.com/icon.png

    Copyright 2012, Foo Bar
    Tue, 21 Aug 2012 10:50:37 +0000
    Tue, 21 Aug 2012 10:50:37 +0000
    60

      Blog Entry Title]]>
      http://blog.example.com/2012/08/21/blog-entry/
      Blog body]]>
      Blog body]]>
      http://blog.example.com/2012/08/21/blog-entry/
      Tue, 21 Aug 2012 10:50:37 +0000
      John Smith
      http://blog.example.com/

      Some Media RSS Entry
      http://podcast.example.com/2012/08/21/podcast-entry/
      &lt;div&gt;Podcast body&lt;/div&gt;

      Oh my wonderful RSS
      a wonderful song

      rock,blues
      bf1ab2d7290a1bed086fdab56f268f48

      Some Podcast Entry
      http://podcast.example.com/2012/08/21/podcast-entry/
      &lt;div&gt;Podcast body&lt;/div&gt;

```

GeoRSS example
--------------

[](#georss-example)

```
use com\augmentedlogic\feedibus\Channel;
use com\augmentedlogic\feedibus\ChannelImage;
use com\augmentedlogic\feedibus\GeoRSSFeed;
use com\augmentedlogic\feedibus\Item;
use com\augmentedlogic\feedibus\MediaItem;

$feed = new GeoRSSFeed();

$channel = new Channel();
$channel->title('Channel Title')
    ->description('Channel Description')
    ->url('http://blog.example.com')
    ->appendTo($feed);

$item = new Item();
$item
    ->title('Some Geo Entry')
    ->description('This is London')
    ->url('http://example.com/london')
    ->point(51.5074, -0.1278) // point is lat, lon
    ->appendTo($channel);

echo $feed->render();
```

License
-------

[](#license)

MIT license

###  Health Score

42

—

FairBetter than 88% of packages

Maintenance93

Actively maintained with recent releases

Popularity8

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2 days

Total

7

Last Release

34d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/664cb02c3562469457c14e9e0e1cf6f488dff8a9123d2203aeff9ef029c13728?d=identicon)[augmentedlogic](/maintainers/augmentedlogic)

---

Top Contributors

[![suin](https://avatars.githubusercontent.com/u/855338?v=4)](https://github.com/suin "suin (36 commits)")[![wolfha](https://avatars.githubusercontent.com/u/6690021?v=4)](https://github.com/wolfha "wolfha (34 commits)")[![buffcode](https://avatars.githubusercontent.com/u/2863518?v=4)](https://github.com/buffcode "buffcode (16 commits)")[![maltsev](https://avatars.githubusercontent.com/u/923973?v=4)](https://github.com/maltsev "maltsev (4 commits)")[![localheinz](https://avatars.githubusercontent.com/u/605483?v=4)](https://github.com/localheinz "localheinz (3 commits)")[![christianp](https://avatars.githubusercontent.com/u/19513?v=4)](https://github.com/christianp "christianp (3 commits)")[![marcdenning](https://avatars.githubusercontent.com/u/2893119?v=4)](https://github.com/marcdenning "marcdenning (2 commits)")[![1franck](https://avatars.githubusercontent.com/u/1209308?v=4)](https://github.com/1franck "1franck (1 commits)")[![Nyholm](https://avatars.githubusercontent.com/u/1275206?v=4)](https://github.com/Nyholm "Nyholm (1 commits)")[![jeroenmoors](https://avatars.githubusercontent.com/u/1665245?v=4)](https://github.com/jeroenmoors "jeroenmoors (1 commits)")[![barryp](https://avatars.githubusercontent.com/u/945959?v=4)](https://github.com/barryp "barryp (1 commits)")

---

Tags

feedgeorssmediarssphprssphpfeedrsswritermediarss

### Embed Badge

![Health badge](/badges/augmentedlogic-feedibus/health.svg)

```
[![Health](https://phpackages.com/badges/augmentedlogic-feedibus/health.svg)](https://phpackages.com/packages/augmentedlogic-feedibus)
```

###  Alternatives

[suin/php-rss-writer

Yet another simple RSS writer library for PHP 5.4 or later.

2811.5M21](/packages/suin-php-rss-writer)[sokolnikov911/yandex-turbo-pages

PHP7 Yandex Turbo Pages RSS feed generator

4992.9k](/packages/sokolnikov911-yandex-turbo-pages)[rumenx/php-feed

Framework-agnostic PHP Feed generator for Laravel, Symfony, and more.

3666.4k](/packages/rumenx-php-feed)[bnomei/kirby3-feed

Generate a Atom/JSON/RSS-Feed and XML-Sitemap from Pages-Collections

7228.9k](/packages/bnomei-kirby3-feed)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
