desarrolla2 / rss-client-bundle
This Bundle provides a way to get rss feeds friendly.
Package info
github.com/desarrolla2/RSSClientBundle
Type:symfony-bundle
pkg:composer/desarrolla2/rss-client-bundle
Requires
- php: >=5.3.2
- desarrolla2/rss-client: ~2
- symfony/framework-bundle: ~2
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Service for provide RSS client in your website, you can automatically add content to your site from your favorite information providers.
Bundle Installation
Get the bundle
Add to your /composer.json file :
"require": { ... "desarrolla2/rss-client-bundle": "2.*" },
And make
composer update
Register the bundle
// app/AppKernel.php <?php public function registerBundles() { return array( // ... new Desarrolla2\Bundle\RSSClientBundle\RSSClientBundle(), ); }
Using RSS Bundle
Configure providers
You need edit your config.yml and add the rss routes you want to get.
# app/config/config.yml rss_client: cache: ttl: 3600 # This is the default channels: channel_name1: - 'http://www.osukaru.es/feed/' - 'http://desarrolla2.com/feed/' channel_name2: - 'http://feeds.feedburner.com/symfony/blog' - 'http://www.symfony.es/feed/'
The cache option is completely optional. If not specified the shown default take effect.
Optionally: configure custom processors
If you want to use custom processors to extract additional information from a feed, also add the "processors" key pointing to services that implement the ProcessorInterface.
rss_client: processors: ["my_service_id", "my_other_service_id"]
In your controller
Retrieve the service and fetch the content.
<?php class NewsController extends Controller { /** * Renders latest news * * @return array * @Route("/noticias", name="news_index") * @Template() */ public function indexAction() { $this->client = $this->get('rss_client'); return array( 'feeds' => $this->client->fetch('channel_name1'), ); } }
In your view
Render the content for your users
{% block content %}
<section>
{% for feed in feeds %}
<article>
<header>
<a href="{{ feed.link }}" target="_blank">{{ feed.title }}</a>
<time>{{ feed.pubDate | date('d/m/Y H:i') }}</time>
</header>
<p>{{ feed | raw }}</p>
</article>
{% else %}
<p>Not news :(</p>
{% endfor %}
</section>
{% endblock %}
Contact
You can contact with me on twitter.
More Info
See RSSClient.