nekland/feed-bundle

此包已弃用,不再维护。未建议替代包。

symfony 的订阅管理器集成

安装次数: 3,533

依赖者: 1

建议者: 0

安全: 0

星标: 33

关注者: 3

分支: 19

开放问题: 1

类型:symfony-bundle

2.0.6 2013-05-15 20:45 UTC

This package is auto-updated.

Last update: 2021-09-20 10:23:48 UTC


README

版本 2.0 变更

  • 针对 Symfony 2.1 进行测试
  • 添加了 composer 支持
  • 命名空间已更改
  • (版本更改)

版本 1.1 变更

  • 在配置中,您需要定义一个 URL,而不是路由。(也许是另一个网站?您可以输入任何内容)
  • ItemInterface 中的 getFeedRoute 方法变为 getFeedRoutes(它是一个路由数组)。更多信息,请参阅 ItemInterface 或 wiki。
  • 为命名您的订阅,您必须在文件名中添加 |format|(在您想要的位置)

版本 1.0 警告:新版本(1.1)进行了重大更改,但不是在代码逻辑上。

特性

  • 可以制作 atom 和 rss 2.0 订阅
  • 支持多个订阅
  • 支持编辑订阅
  • 可扩展
  • 即时和保存时订阅生成

阅读有关配置和更多 wiki 内容

https://github.com/Nekland/FeedBundle/wiki

配置

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'

可选(默认值)

    nekland_feed:
        feeds:
            ...
        renderers:
            rss:
                id: nekland_feed.renderer.rss
        loaders:
            rss_file:
                id: nekland_feed.loader.rss_file

请注意,如果您想更改文件保存路径,您可以重新定义此选项

# Default path
nekland_feed.feeds.base_path: %kernel.root_dir%/../web/feeds

模型

要使用 NeklandFeedBundle,您必须有一个实现 ItemInterface 的类。在大多数情况下,您可以使用您的实体/文档来完成此操作

    class Post implements ItemInterface
    {
        //.....
    }

使用方法

检索您的订阅实例

    $container->get('nekland_feed.factory')->get('my_feed');

如果您的控制器扩展了基础 Symfony 控制器,您可以使用

    $this->get('nekland_feed.factory')->get('my_feed');

渲染订阅

    $factory->render('my_feed', 'renderer');

添加条目

    /** @var $post My\MyBundle\Entity\Post */
    $factory->load('my_feed', 'loader');
    $factory->get('my_feed')->add($post);

测试

NeklandFeedBundle 包含一些 behat 风格的测试。安装 BehatBundle 并使用以下命令启动它:

app/console -e=test behat @NeklandFeedBundle

待办事项

  • 注解配置

作者

贡献者