個人開発でフィードの取得が必要になってきたので、Laravelでフィードを取得してみます!
「awjudd/feed-reader」をcomposerでインストールする
feedを取得するために必要なやつをインストールします!
$ composer require awjudd/feed-reader
feedを取得するための設定をする
-
config/app.php
の`providers=>'の中に以下の内容を記述します。
config/app.php
providers=> [
.
.
.
Awjudd\FeedReader\FeedReaderServiceProvider::class, // この行を追加
]
- 同じファイルの
Arias
の部分は以下の感じで記述します。
config/app.php
'aliases' => [
.
.
.
'FeedReader' => Awjudd\FeedReader\Facade::class, // この行を追加
- そして、以下のコマンドを実行します。
$ php artisan vendor:publish
たくさん選択肢が出てくるのですが、 [1 ] Provider: Awjudd\FeedReader\FeedReaderServiceProvider
を選択してください。
controllerに処理を書く
FeedController.php
use Awjudd\FeedReader\Facade as FeedReader;
.
.
.
public function feed()
{
$feed = FeedReader::read('feedのURLをここに書く');
$i = 0;
foreach ($feed->get_items() as $item) {
$articles[$i]['title'] = mb_strimwidth(trim($item->get_title()), 0, 70, "...");
$articles[$i]['permalink'] = trim($item->get_permalink());
$articles[$i]['link'] = trim($item->get_link());
$articles[$i]['date'] = $item->get_date('Y-m-d H:i:s');
$articles[$i]['content'] = mb_strimwidth(strip_tags(trim($item->get_content())), 0, 100, "...");
$i++;
}
return view('feed', compact('articles'));
}
取ってきたタイトルとかは色々加工していますが、みなさんこの辺はお好きにどうぞ。。。
ビュー上では、$articlesをforeachで回して、$article["title"]
とかで取得できます!
というわけで、Laravelでfeedを取得するの結構簡単でした!!
気になったらぜひやってみてください!