PHPackages                             argentum/feed-bundle - 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. [API Development](/categories/api)
4. /
5. argentum/feed-bundle

ActiveSymfony-bundle[API Development](/categories/api)

argentum/feed-bundle
====================

Symfony Bundle to generate RSS Feed with custom namespaces and elements

v1.0.0(11y ago)185.8k1MITPHPPHP &gt;=5.3.2

Since May 22Pushed 7y ago1 watchersCompare

[ Source](https://github.com/argentumua/ArgentumFeedBundle)[ Packagist](https://packagist.org/packages/argentum/feed-bundle)[ Docs](http://argentum.ua)[ RSS](/packages/argentum-feed-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (2)Versions (2)Used By (0)

ArgentumFeedBundle
==================

[](#argentumfeedbundle)

[![SensioLabsInsight](https://camo.githubusercontent.com/feb285ac7f2e12226c8527b75346650906c14c4b8cee7ee2ee492a1f78739b98/68747470733a2f2f696e73696768742e73656e73696f6c6162732e636f6d2f70726f6a656374732f30323066393634332d386231352d343534322d396631392d3765386664633836643339322f6d696e692e706e67)](https://insight.sensiolabs.com/projects/020f9643-8b15-4542-9f19-7e8fdc86d392)[![Build Status](https://camo.githubusercontent.com/1daec0857af0966fead889f84c4ecba3b9d747b24b2b1bfbb71af8b55fdafb71/68747470733a2f2f7472617669732d63692e6f72672f617267656e74756d75612f417267656e74756d4665656442756e646c652e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/argentumua/ArgentumFeedBundle)[![Coverage Status](https://camo.githubusercontent.com/4ff0f8cc1b4f2a1caeff5664404df915dce1dfb15e956e36787596191185cd95/68747470733a2f2f696d672e736869656c64732e696f2f636f766572616c6c732f617267656e74756d75612f417267656e74756d4665656442756e646c652e737667)](https://coveralls.io/r/argentumua/ArgentumFeedBundle)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/c4229bf41a7f5b6d31f6f72a60d499327b20fd0bb52dd73e18cb3057e1888497/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f617267656e74756d75612f417267656e74756d4665656442756e646c652f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/argentumua/ArgentumFeedBundle/?branch=master)[![Latest Stable Version](https://camo.githubusercontent.com/3bd289f672afb500b1934885b9aca73721a19ada5f947d36cc4fedeef060258f/68747470733a2f2f706f7365722e707567782e6f72672f617267656e74756d2f666565642d62756e646c652f762f737461626c652e737667)](https://packagist.org/packages/argentum/feed-bundle)[![License](https://camo.githubusercontent.com/6bda97b670e9065fd2c92c70853024f6cb4008a4b91268128bb86eeb96ff9ea9/68747470733a2f2f706f7365722e707567782e6f72672f617267656e74756d2f666565642d62756e646c652f6c6963656e73652e737667)](https://packagist.org/packages/argentum/feed-bundle)

ArgentumFeedBundle allows you to create a set of feeds for your content with different settings. All predefined settings can be overridden at runtime.

You can create your own Feed classes and Renderers by defining a service with tag `argentum_feed.feed` and `argentum_feed.renderer` respectively.

Usage
-----

[](#usage)

Render a predefined feed:

```
$rss = $this->get('argentum_feed.factory')
    ->createFeed('news')
    ->addFeedableItems($news)
    ->render();
```

where `$news` is a collection of `News` entities.

To get it to work your `News` entity should implement `Feedable` interface:

```
use Argentum\FeedBundle\Feed\Feedable;
use Argentum\FeedBundle\Feed\FeedItem;
use Argentum\FeedBundle\Feed\FeedItemEnclosure;
use Argentum\FeedBundle\Feed\FeedItemSource;

class News implements Feedable
{
    // ...

    /**
     * Returns FeedItem instance.
     *
     * @return FeedItem
     */
    public function getFeedItem()
    {
        $item = new FeedItem();

        $item
            ->setRouteName('news_show')
            ->setRouteParameters([
                'category' => $this->getCategory()->getSlug(),
                'id' => $this->getId(),
                'slug' => $this->getSlug(),
            ])
            ->setTitle($this->getTitle())
            ->setDescription($this->getAnnounce())
            ->setPubDate($this->getPublishedAt())
            ->addCustomValue('yandex:full-text', $this->getBody())
            ->addCustomValue('mailru:full-text', $this->getBody());

        if ($this->getImageMedium()) {
            $item->addEnclosure(
                new FeedItemEnclosure($this->getImageMedium()['path'], 'image/jpeg')
            );
        }

        if ($this->getSourceTitle()) {
            $item->setSource(
                new FeedItemSource($this->getSourceTitle(), $this->getSourceUrl())
            );
        }

        return $item;
    }
}
```

Also you can specify a data source provider in the configuration:

```
argentum_feed:
    channels:
        news:
            title: 'News'
            link: '/'
            description: 'News feed'
            provider:
                repository: 'ArgentumNewsBundle:News'
                method: 'findAllPublished'
                arguments: [10, 'ru']
```

and then you can just create the feed and render it:

```
$rss = $this->get('argentum_feed.factory')
    ->createFeed('news')
    ->render();
```

Configuration
-------------

[](#configuration)

Full configuration:

```
argentum_feed:
    channels:
        news:
            title: 'News'
            link: '/'
            description: 'News feed'
            language: 'ru'
            copyright: 'ACME'
            managingEditor: 'Editor'
            webMaster: 'Webmaster'
            pubDate: 'now'
            lastBuildDate: 'now'
            categories:
                - { title: 'Category 1', domain: 'domain' }
                - { title: 'Category 2' }
            generator: 'ArgentumFeedBundle'
            docs: 'docs'
            cloud:
                domain: 'domain.tld'
                port: 80
                path: '/'
                registerProcedure: 'register'
                protocol: 'xmlrpc'
            ttl: 300
            image:
                url: '/images/logo.png'
                title: 'News'
                link: '/'
                width: 128
                height: 96
                description: 'News'
            rating: 'Best'
            textInput:
                title: 'Title'
                description: 'Description'
                name: 'name'
                link: 'http://domain.tld'
            skipHours: [0, 1, 2, 3, 4, 5, 6, 7, 8]
            skipDays:
                - 'Saturday'
                - 'Sunday'
            namespaces:
                default: 'http://backend.userland.com/rss2'
                yandex: 'http://news.yandex.ru'
                mailru: 'http://news.mail.ru'
            customElements:
                - 'yandex:full-text'
                - 'mailru:full-text'
            encoding: 'utf-8'
            translationDomain: 'news'
            feed: 'feed'
            renderer: 'rss'
            provider:
                repository: 'ArgentumNewsBundle:News'
                method: 'findAllPublished'
                arguments: [10, 'ru']
```

Minimal configuration:

```
argentum_feed:
    channels:
        news:
            title: 'News'
            link: '/'
            description: 'News feed'
```

All relative links will be converted to absolute using request host. All text content from the predefined configuration will be translated using specified translationDomain.

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity29

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

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

Unknown

Total

1

Last Release

4379d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/7e4ae642c5f1ad16c9b07e976096123f9ef8d50ee7df05123ed1e7f55b29caa9?d=identicon)[javer](/maintainers/javer)

![](https://www.gravatar.com/avatar/6550bb7ef5944906cf6e420101e73d5682d0e016f647954f35914c8087bd89b0?d=identicon)[argentum](/maintainers/argentum)

---

Top Contributors

[![javer](https://avatars.githubusercontent.com/u/591296?v=4)](https://github.com/javer "javer (5 commits)")

---

Tags

feedrss

### Embed Badge

![Health badge](/badges/argentum-feed-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/argentum-feed-bundle/health.svg)](https://phpackages.com/packages/argentum-feed-bundle)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[laminas/laminas-feed

provides functionality for creating and consuming RSS and Atom feeds

16649.2M47](/packages/laminas-laminas-feed)[eko/feedbundle

A Symfony bundle to build RSS feeds from entities

142574.6k3](/packages/eko-feedbundle)[mibe/feedwriter

Generate feeds in either RSS 1.0, RSS 2.0 or ATOM formats

1951.1M5](/packages/mibe-feedwriter)[debril/rss-atom-bundle

RSS / Atom and JSONFeed support for Symfony

1381.3M2](/packages/debril-rss-atom-bundle)[pgrimaud/instagram-user-feed

This is a scraper to easily fetch any feed and interact with Instagram (like, follow, etc.) without OAuth for PHP.

940657.1k5](/packages/pgrimaud-instagram-user-feed)

PHPackages © 2026

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