lukaswhite/php-feed-writer
一个用于编写新闻源(如RSS)的PHP库
2.1
2022-07-26 10:34 UTC
Requires
- php: >=8.0.0
Requires (Dev)
- phpunit/php-code-coverage: ^9.2
- phpunit/phpunit: ^9.5
README
这是一个用于编写新闻源的PHP库。目前支持RSS 2.0、Atom、iTunes,并提供对MediaRSS、Dublin Core、GeoRSS和WordPress扩展RSS(WXR)的支持。
特性
- 现代(PHP7.1+)
- 灵活;适用于内容分发、媒体、播客等...
- 快速
- 易于扩展
- 支持自定义命名空间
- 完全支持MediaRSS
- 支持Dublin Core
- 支持GeoRSS
- 支持XSL样式表
- 无第三方依赖
- 完全测试
简单示例
RSS
$feed = new RSS2( ); $channel = $feed->addChannel( ); $channel ->title( 'My Blog' ) ->description( 'My personal blog' ) ->link( 'https://example.com' ) ->lastBuildDate( new \DateTime( ) ) ->pubDate( new \DateTime( ) ) ->language( 'en-US' ); foreach( $posts as $post ) { $channel->addItem( ) ->title( $post->title ) ->description( $post->description ) ->link( $post->url ) ->pubDate( $post->publishedAt ) ->guid( $post->url, true ); }
在Laravel中使用RSS
$feed = new RSS2( ); // ... return response( )->make( $feed->toString( ), 200, [ 'Content-Type' => $feed->getMimeType( ), ] );
Atom
$feed = new \Lukaswhite\FeedWriter\Atom( ); $feed->title( 'Example Feed' ) ->link( 'http://example.org/' ) ->updated( new \DateTime( '2003-12-13T18:30:02Z' ) ) ->id( 'urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6' ); foreach( $posts as $post ) { $feed->addEntry( ) ->title( $post->title ) ->id( $post->id ) ->updated( $post->updatedAt ); }
iTunes
$feed = new Itunes( ); $channel = $feed->addChannel( ); $channel->title( 'All About Everything' ) ->subtitle( 'A show about everything' ) ->description( 'All About Everything is a show about everything. Each week we dive into any subject known to man and talk about it as much as we can. Look for our podcast in the Podcasts app or in the iTunes Store' ) ->summary( 'All About Everything is a show about everything. Each week we dive into any subject known to man and talk about it as much as we can. Look for our podcast in the Podcasts app or in the iTunes Store' ) ->link( 'http://www.example.com/podcasts/everything/index.html' ) ->image( 'http://example.com/podcasts/everything/AllAboutEverything.jpg' ) ->author( 'John Doe' ) ->owner( 'John Doe', 'john.doe@example.com' ) ->explicit( 'no' ) ->copyright( '℗ & © 2014 John Doe & Family' ) ->generator( 'Feed Writer' ) ->ttl( 60 ) ->lastBuildDate( new \DateTime( '2016-03-10 02:00' ) ); $channel->addCategory() ->term('Technology'); $channel->addCategory() ->term('Sports') ->children('Football', 'Soccer'); $channel->addItem( ) ->title( 'Shake Shake Shake Your Spices' ) ->author( 'John Doe' ) ->subtitle( 'A short primer on table spices' ) ->duration( '07:04' ) ->summary( 'This week we talk about <a href="https://itunes/apple.com/us/book/antique-trader-salt-pepper/id429691295?mt=11">salt and pepper shakers</a>, comparing and contrasting pour rates, construction materials, and overall aesthetics. Come and join the party!' ) ->pubDate( new \DateTime( '2016-03-08 12:00' ) ) ->guid( 'http://example.com/podcasts/archive/aae20140615.m4a' ) ->explicit( 'no' ) ->addEnclosure( ) ->url( 'http://example.com/podcasts/everything/AllAboutEverythingEpisode3.m4a' ) ->length( 8727310 ) ->type( 'audio/x-m4a' );
安装
此包需要PHP 7.1+。
使用Composer安装包
composer require lukaswhite\php-feed-writer
文档
完整的文档可以在这里找到。