marcw/rss-writer

一个简单而强大的支持RSS扩展(如iTunes播客标签)的RSS2订阅源编写器

0.4.0 2017-04-01 11:53 UTC

This package is not auto-updated.

Last update: 2024-09-13 22:40:51 UTC


README

Build Status SensioLabsInsight Coverage Status

这是一个简单、强大且可完全自定义的RSS 2.0编写库,具有对iTunes播客标签和其他RSS扩展的原生支持。

为什么需要一个新的RSS编写库?

在我编写这个库的时候,现有的订阅源编写库的状态并不令人满意。我所发现的是,要么难以扩展,要么过于通用,或者没有利用最佳实践来减少第一次字节时间

为什么我应该使用这个而不是其他库?

如果你想使用这个库,请

  • RSS2订阅源(因为不支持其他类型的订阅源)。
  • 为iTunes播客、Slash、Sy、DublinCreator、Atom或其他自定义扩展。
  • 由于XML流而具有最佳性能(内存和TTFB)。
  • 使用POPO进行面向对象的订阅源创建

我该如何安装它?

运行composer require marcw/rss-writer

它是如何工作的?

订阅源创建

查看这个文件

Rss流式响应

查看这个文件

Symfony桥接

HttpFoundation

该库为Symfony\Component\HttpFoundation\Response类提供了一个扩展,用于向客户端流式传输rss响应。查看RssStreamedResponse.php。您可以在控制器中这样使用它

use MarcW\RssWriter\Bridge\Symfony\HttpFoundation\RssStreamedResponse;

public function myAction()
{
    // $channel = ... (whatever you use to create your Channel object)

    return new RssStreamedResponse($channel, $this->get('marcw_rss_writer.rss_writer'));
}

表单

您的表单中可以使用iTunes类别选择列表。请遵循以下示例

<?php

namespace AppBundle\Form;

use MarcW\RssWriter\Bridge\Symfony\Form\ChoiceList\Loader\ItunesCategoryChoiceLoader;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\FormBuilderInterface;

class MyFormType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        // ...
        $builder->add('category', ChoiceType::class, ['choice_loader' => new ItunesCategoryChoiceLoader()])
        // ...
    }
}

Symfony包

此库还提供了一个Symfony包。

将其添加到您的AppKernel.php文件中。

new MarcW\RssWriter\Bundle\MarcWRssWriterBundle()

现在您可以使用marcw_rss_writer.rss_writer服务。

我可以贡献力量吗?

当然可以!请随意报告问题、发送拉取请求或寻求帮助。

使用此库的项目

  • Banditore 从您的GitHub星标仓库检索新版本,并将其放入RSS订阅源中。

授权

查看授权文件。