Integrates SimplePie RSS Parser into Symfony2 and setting up caching to the symfony2 cache folder.
This can be done in two different ways:
Method #1) Use composer
"require": { "fkr/simplepie-bundle": "1.0.*@dev" } Method #2) Use deps file
[SimplePie] git=git://github.com/simplepie/simplepie.git target=simplepie [FkrSimplePieBundle] git=git://github.com/fkrauthan/FkrSimplePieBundle.git target=bundles/Fkr/SimplePieBundle Method #3) Use git submodules
git submodule add git://github.com/simplepie/simplepie.git vendor/simplepie git submodule add git://github.com/fkrauthan/FkrSimplePieBundle.git vendor/bundles/Fkr/SimplePieBundle This is not required if you installed using composer.
// app/autoload.php $loader->registerNamespaces(array( 'Fkr' => __DIR__.'/../vendor/bundles', // your other namespaces )); $loader->registerPrefixes(array( 'SimplePie' => __DIR__.'/../vendor/simplepie/library', // your other namespaces )); // app/AppKernel.php public function registerBundles() { return array( // ... new Fkr\SimplePieBundle\FkrSimplePieBundle(), // ... ); } # app/config.yml fkr_simple_pie: cache_enabled: false cache_dir: %kernel.cache_dir%/rss cache_duration: 3600 idna_converter: ~ #default is false - cache_enabled: [true or false] enables caching for the SimplePie class
- cache_dir: [any dir] setup the caching dir which SimplePie should use
- cache_duration: [secs] setting up caching for number of seconds.
- idna_converter: [true or false] enable the idna converter a Encoder/Decoder for Internationalized Domain Names
For more information about SimplePie's caching please visit the SimplePie wiki.
To get a configured SimplePie class instance just use the following code
$this->get('fkr_simple_pie.rss'); The service keeps only one instance of SimplePie. If you want to use multiple feeds over your application you have to clone the instance to stop them interfering
$one = clone $this->get('fkr_simple_pie.rss'); $two = clone $this->get('fkr_simple_pie.rss'); Thats all. For the complete api visit the SimplePie api doc.