nekland / feed-bundle
Feed manager integration for symfony
Installs: 3 539
Dependents: 1
Suggesters: 0
Security: 0
Stars: 33
Watchers: 3
Forks: 19
Open Issues: 1
Type:symfony-bundle
Requires
- php: >=5.3.2
This package is auto-updated.
Last update: 2021-09-20 10:23:48 UTC
README
Version 2.0 Changes:
- Tested for Symfony 2.1
- Added composer support
- Namespace changed
- (versioning change)
Version 1.1 Changes:
- in the configuration you need to defined an url, not a route. (Maybe another website ? You can type what you want)
- the method getFeedRoute become getFeedRoutes in the ItemInterface (it's an array of routes). For more information, see the ItemInterface or the wiki.
- for naming your feeds you must add |format| (where you want in the filename)
Version 1.0 Warning: finally the new version (1.1) make substantial changes, but not in the code logic.
Features
- can make atom and rss 2.0 feeds
- support multiple feeds
- support edit of feeds
- extensible
- On-the-fly and at-save feed generation
Read about configuration and more on the wiki
https://github.com/Nekland/FeedBundle/wiki
Configuration
app/config.yml
nekland_feed: feeds: my_feed: class: My\MyBundle\Entity\Post title: 'My fabulous posts' description: 'Here is my very fabulous posts' url: 'http://my-website.com' language: 'fr' my_feed2: class: My\MyBundle\Entity\Comment title: 'My fabulous comments' description: 'Here is my very fabulous comments' url: 'http://my-website.com' language: 'fr'
Optional (default values):
nekland_feed: feeds: ... renderers: rss: id: nekland_feed.renderer.rss loaders: rss_file: id: nekland_feed.loader.rss_file
Notice that if you want change the path where are saved files, you can redefined this option:
# Default path nekland_feed.feeds.base_path: %kernel.root_dir%/../web/feeds
Models
To use the NeklandFeedBundle, you must have class that implements the ItemInterface. In most of case, you can do it with your entities/documents
class Post implements ItemInterface { //..... }
Usage
Retrieve your feed instance
$container->get('nekland_feed.factory')->get('my_feed');
If your controller extends the base Symfony controller, you can use
$this->get('nekland_feed.factory')->get('my_feed');
Render the feed
$factory->render('my_feed', 'renderer');
Add an item
/** @var $post My\MyBundle\Entity\Post */ $factory->load('my_feed', 'loader'); $factory->get('my_feed')->add($post);
Tests
NeklandFeedBundle is bundled with some behat flavoured tests. Install BehatBundle and launch it with
app/console -e=test behat @NeklandFeedBundle
TODO
- Annotation configuration
Author :
Contributors :
- Yohan Giarelli yohan@giarelli.org