willvincent / feeds
Laravel 5 对 SimplePie 库的 Service Provider
v2.6.0
2024-03-14 16:28 UTC
Requires
- php: >=5.4.0 || ^7.2 || ^8.0
- ext-curl: *
- illuminate/support: ~5.0 || ^6.0 || ^7.0 || ^8.0|^9.0|^10.0 || ^11.0
- simplepie/simplepie: ^1.5
README
一个简单的 Laravel 5/6/7/8/9/10 服务提供者,用于包含 SimplePie 库。
安装
可以通过 Composer 安装 Laravel 5/6/7/8/9/10 Feeds 服务提供者,在项目中的 composer.json
文件中要求 willvincent/feeds
包。
{ "require": { "willvincent/feeds": "2.3.*" } }
配置
如果你使用的是 Laravel 5.5 或更新的版本,你可以跳过下一步。
要使用 Feeds 服务提供者,你必须在启动 Laravel 应用程序时注册提供者。
在你的 config/app.php
文件中找到 providers
键并注册服务提供者。
'providers' => [ // ... willvincent\Feeds\FeedsServiceProvider::class, ],
在你的 config/app.php
文件中找到 aliases
键并注册外观。
'aliases' => [ // ... 'Feeds' => willvincent\Feeds\Facades\FeedsFacade::class, ],
用法
运行 php artisan vendor:publish --provider="willvincent\Feeds\FeedsServiceProvider"
以发布默认配置文件,根据需要编辑生成的 config/feeds.php
文件中的缓存设置。
有关完整 API 使用文档,请参阅 SimplePie 文档。
make() 接受 3 个参数,第一个参数是订阅 URL 数组,第二个参数是每个订阅返回的最大项目数,第三个参数是布尔值,您可以将其设置为强制读取,除非内容类型不是有效的 RSS。
$feed = \Feeds::make('http://feed/url/goes/here');
注意:在 Laravel 5 和更新的版本中,外观必须带有反斜杠前缀,或者通过 use [facadeName]
声明引入作用域。
示例控制器方法和相关视图
控制器
public function demo() { $feed = \Feeds::make('http://blog.case.edu/news/feed.atom'); $data = array( 'title' => $feed->get_title(), 'permalink' => $feed->get_permalink(), 'items' => $feed->get_items(), ); return View::make('feed', $data); }
或强制读取除非内容类型不是有效的 RSS
public function demo() { $feed = \Feeds::make('http://blog.case.edu/news/feed.atom', true); // if RSS Feed has invalid mime types, force to read $data = array( 'title' => $feed->get_title(), 'permalink' => $feed->get_permalink(), 'items' => $feed->get_items(), ); return View::make('feed', $data); }
多订阅示例控制器方法和相关视图
控制器
public function demo() { $feed = \Feeds::make([ 'http://blog.case.edu/news/feed.atom', 'http://tutorialslodge.com/feed' ], 5); $data = array( 'title' => $feed->get_title(), 'permalink' => $feed->get_permalink(), 'items' => $feed->get_items(), ); return View::make('feed', $data); }
或强制读取除非内容类型不是有效的 RSS
public function demo() { $feed = \Feeds::make(['http://blog.case.edu/news/feed.atom', 'http://tutorialslodge.com/feed' ], 5, true); // if RSS Feed has invalid mime types, force to read $data = array( 'title' => $feed->get_title(), 'permalink' => $feed->get_permalink(), 'items' => $feed->get_items(), ); return View::make('feed', $data); }
视图
@extends('app') @section('content') <div class="header"> <h1><a href="{{ $permalink }}">{{ $title }}</a></h1> </div> @foreach ($items as $item) <div class="item"> <h2><a href="{{ $item->get_permalink() }}">{{ $item->get_title() }}</a></h2> <p>{{ $item->get_description() }}</p> <p><small>Posted on {{ $item->get_date('j F Y | g:i a') }}</small></p> </div> @endforeach @endsection