Laravel 5 对 SimplePie 库的 Service Provider

v2.6.0 2024-03-14 16:28 UTC

This package is auto-updated.

Last update: 2024-09-14 17:48:08 UTC


README

Latest Stable Version SensioLabsInsight License

Total Downloads Monthly Downloads Daily Downloads

一个简单的 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