kiwilan / php-rss
用于生成预设RSS流的PHP包。
0.3.11
2023-09-24 13:18 UTC
Requires
- php: ^8.1
- spatie/array-to-xml: ^3.1
Requires (Dev)
- kiwilan/php-xml-reader: ^0.2.31
- laravel/pint: ^1.2
- pestphp/pest: ^1.20
- phpstan/phpstan: ^1.10
- spatie/invade: ^2.0
- spatie/ray: ^1.28
README
警告
尚未准备就绪用于生产
用于生成预设RSS流的PHP包。
功能
// TODO
路线图
- 添加来自https://github.com/bcomnes/jsonfeed-to-rss和https://pawelgrzybek.com/simple-rss-atom-and-json-feed-for-your-blog的JSON feed
- 添加博客feed
- 添加atom选项
安装
您可以通过composer安装此包
composer require kiwilan/php-rss
使用方法
播客
播客RSS feed相当古老,有很多不同的版本。
$podcast = Feed::make()->podcast() ->title('2 Heures De Perdues') ->link('https://www.2hdp.fr') ->atomLink('https://www.2hdp.fr/xml') ->subtitle('Pourquoi gagner du temps quand on peut en perdre devant de mauvais films ?') ->description('Petit podcast de rigolos pour les amateurs de cinéma. Pourquoi gagner du temps quand on peut en perdre devant de mauvais films') ->language('fr') ->copyright('℗ & © 2019 Fréquence Moderne') ->lastUpdate(new DateTime('2021-09-01 00:00:00')) ->webmaster('feeds@ausha.co (Ausha)') ->generator('Ausha (https://www.ausha.co)') ->keywords(['films', 'critiques', 'comédie']) ->author('2HDP') ->ownerName('2 Heures De Perdues') ->ownerEmail('2heuresdeperdues@gmail.com') ->isExplicit() ->isPrivate() ->type(ItunesTypeEnum::episodic) ->addCategory(ItunesCategoryEnum::tv_film, ItunesSubCategoryEnum::tv_films_film_reviews) ->image('https://raw.githubusercontent.com/kiwilan/php-rss/main/tests/examples/folder.jpeg'); $item1 = PodcastItem::make() ->title("Peau d'Ane") ->guid('custom-and-unique-key', isPermaLink: true) ->subtitle('On discute du chef d\'oeuvre de Jacques. Des réactions ? @2_HDP') ->description('<p>On discute du chef d\'oeuvre de Jacques. Des réactions ? @2_HDP</p>') ->publishDate('2023-06-14 08:39:25') ->enclosure( url: 'https://chtbl.com/track/47E579/https://audio.ausha.co/B4mpWfDq5KDa.mp3?t=1685693288', length: 56898528, type: 'audio/mpeg' ) ->link('https://podcast.ausha.co/2-heures-de-perdues/peau-d-ane') ->author('2 Heures de Perdues') ->keywords([]) ->duration(3551) ->episodeType(ItunesEpisodeTypeEnum::full) ->season(9) ->episode(34) ->image('https://image.ausha.co/XboDHYC69Oorw8MBObAkQ2sTPdxGTkexH3nYQ8Ky_1400x1400.jpeg?t=1619074925'); $podcast->addItem($item1); // Add item to podcast $podcast->get(); // Get XML feed
原始
注意
您可以使用
spatie/array-to-xml
使用指南来帮助您。
$podcast = Feed::make() ->template( root: 'rss', version: '1.0', encoding: 'UTF-8', attributes: [ ...FeedConstants::RSS_FEED, 'xmlns:itunes' => 'http://www.itunes.com/dtds/podcast-1.0.dtd', ], ) ->raw() ->channel([ 'title' => '2 Heures De Perdues', 'link' => 'https://www.2hdp.fr', 'description' => 'Petit podcast de rigolos pour les amateurs de cinéma. Pourquoi gagner du temps quand on peut en perdre devant de mauvais films', 'language' => 'fr', 'lastBuildDate' => 'Wed, 01 Sep 2021 00:00:00 +0000', ]) ->addItem([ 'title' => "Peau d'Ane", 'link' => 'https://podcast.ausha.co/2-heures-de-perdues/peau-d-ane', 'description' => '<p>On discute du chef d\'oeuvre de Jacques. Des réactions ? @2_HDP</p>', 'pubDate' => 'Wed, 14 Jun 2023 08:39:25 +0000', 'enclosure' => [ '_attributes' => [ 'url' => 'https://chtbl.com/track/47E579/https://audio.ausha.co/B4mpWfDq5KDa.mp3?t=1685693288', 'length' => '56898528', 'type' => 'audio/mpeg', ], ], '__custom:itunes\\:author' => '2 Heures de Perdues', '__custom:itunes\\:duration' => '00:59:11', '__custom:itunes\\:episodeType' => 'full', ]);
带有Laravel的示例
<?php namespace App\Http\Controllers; use DateTime; use Kiwilan\Rss\Enums\ItunesCategoryEnum; use Kiwilan\Rss\Enums\ItunesExplicitEnum; use Kiwilan\Rss\Enums\ItunesSubCategoryEnum; use Kiwilan\Rss\Enums\ItunesTypeEnum; use Kiwilan\Rss\Feed; use Spatie\RouteAttributes\Attributes\Get; use Spatie\RouteAttributes\Attributes\Prefix; #[Prefix('rss')] class RssController extends Controller { #[Get('/')] public function index() { $podcast = Feed::make()->podcast() ->title('2 Heures De Perdues') ->link('https://www.2hdp.fr') ->subtitle('Pourquoi gagner du temps quand on peut en perdre devant de mauvais films ?') ->description('Petit podcast de rigolos pour les amateurs de cinéma. Pourquoi gagner du temps quand on peut en perdre devant de mauvais films') ->language('fr') ->copyright('℗ & © 2019 Fréquence Moderne') ->lastUpdate(new DateTime('2021-09-01 00:00:00')) ->webmaster('feeds@ausha.co (Ausha)') ->generator('Ausha (https://www.ausha.co)') ->keywords(['films', 'critiques', 'comédie']) ->author('2 Heures De Perdues', '2heuresdeperdues@gmail.com') ->explicit(ItunesExplicitEnum::yes) ->isPrivate() ->type(ItunesTypeEnum::episodic) ->addCategory(ItunesCategoryEnum::tv_film, ItunesSubCategoryEnum::tv_films_film_reviews) ->image('https://raw.githubusercontent.com/kiwilan/php-rss/main/tests/examples/folder.jpeg') ; return response($podcast->get(), 200, [ 'Content-Type' => 'application/xml', ]); } }
测试
composer test
资源
规范
RSS验证器
feed应用
- kiwilan/feedrender: 将RSS feed渲染为HTML页面的Node.js应用
变更日志
请参阅CHANGELOG获取有关最近更改的更多信息。
鸣谢
spatie
为spatie/package-skeleton-php
和spatie/array-to-xml
许可
MIT许可(MIT)。请参阅许可文件获取更多信息。