desarrolla2 / rss-client-bundle
This Bundle provides a way to get rss feeds friendly.
Installs: 14 240
Dependents: 0
Suggesters: 0
Security: 0
Stars: 9
Watchers: 2
Forks: 4
Open Issues: 1
Type:symfony-bundle
Requires
- php: >=5.3.2
- desarrolla2/rss-client: ~2
- symfony/framework-bundle: ~2
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.