이 패키지는 Laravel 애플리케이션에 대한 피드를 생성하는 쉬운 방법을 제공합니다. 지원되는 형식은 RSS, Atom 및 JSON입니다. 코딩이 거의 필요하지 않습니다. 설치 지침을 따르고 구성 파일을 업데이트하면 됩니다.
Spatie는 벨기에 앤트워프에 본사를 둔 웹 디자인 에이전시입니다. 당사 웹사이트에서 당사의 모든 오픈 소스 프로젝트에 대한 개요를 확인할 수 있습니다.
우리는 동급 최고의 오픈 소스 패키지를 만드는 데 많은 리소스를 투자합니다. 유료 제품 중 하나를 구매하여 우리를 지원할 수 있습니다.
귀하가 사용하고 있는 당사 패키지를 언급하면서 귀하의 고향에서 엽서를 보내주셔서 진심으로 감사드립니다. 연락처 페이지에서 주소를 확인하실 수 있습니다. 우리는 수신된 모든 엽서를 가상 엽서 월에 게시합니다.
작곡가를 통해 패키지를 설치할 수 있습니다.
composer require spatie/laravel-feed
feeds
-macro를 사용하여 피드가 표시될 경로를 등록합니다.
// In routes/web.php
Route:: feeds ();
선택적으로 문자열을 매크로의 첫 번째 인수로 전달할 수 있습니다. 문자열은 구성된 모든 피드의 URL 접두어로 사용됩니다.
다음으로 구성 파일을 게시해야 합니다.
php artisan feed:install
그 모습은 다음과 같습니다.
return [
' feeds ' => [
' main ' => [
/*
* Here you can specify which class and method will return
* the items that should appear in the feed. For example:
* [AppModel::class, 'getAllFeedItems']
*
* You can also pass an argument to that method. Note that their key must be the name of the parameter: *
* [AppModel::class, 'getAllFeedItems', 'parameterName' => 'argument']
*/
' items ' => '' ,
/*
* The feed will be available on this url.
*/
' url ' => '' ,
' title ' => ' My feed ' ,
' description ' => ' The description of the feed. ' ,
' language ' => ' en-US ' ,
/*
* The image to display for the feed. For Atom feeds, this is displayed as
* a banner/logo; for RSS and JSON feeds, it's displayed as an icon.
* An empty value omits the image attribute from the feed.
*/
' image ' => '' ,
/*
* The format of the feed. Acceptable values are 'rss', 'atom', or 'json'.
*/
' format ' => ' atom ' ,
/*
* The view that will render the feed.
*/
' view ' => ' feed::atom ' ,
/*
* The mime type to be used in the <link> tag. Set to an empty string to automatically
* determine the correct value.
*/
' type ' => '' ,
/*
* The content type for the feed response. Set to an empty string to automatically
* determine the correct value.
*/
' contentType ' => '' ,
],
],
];
선택적으로 보기 파일을 게시할 수 있습니다.
php artisan vendor:publish --provider= " SpatieFeedFeedServiceProvider " --tag= " feed-views "
피드에 표시하려는 레코드가 포함된 NewsItem
이라는 모델이 있다고 가정해 보세요.
먼저 해당 모델에 Feedable
인터페이스를 구현해야 합니다. Feedable
FeedItem
인스턴스를 반환해야 하는 toFeedItem
이라는 한 가지 메서드가 필요합니다.
// app/NewsItem.php
use Illuminate Database Eloquent Model ;
use Spatie Feed Feedable ;
use Spatie Feed FeedItem ;
class NewsItem extends Model implements Feedable
{
public function toFeedItem (): FeedItem
{
return FeedItem:: create ()
-> id ( $ this -> id )
-> title ( $ this -> title )
-> summary ( $ this -> summary )
-> updated ( $ this -> updated_at )
-> link ( $ this -> link )
-> authorName ( $ this -> author )
-> authorEmail ( $ this -> authorEmail );
}
}
원하는 경우 필요한 키가 포함된 연관 배열을 반환하는 것도 효과가 있습니다.
// app/NewsItem.php
use Illuminate Database Eloquent Model ;
use Spatie Feed Feedable ;
use Spatie Feed FeedItem ;
class NewsItem extends Model implements Feedable
{
public function toFeedItem (): FeedItem
{
return FeedItem:: create ([
' id ' => $ this -> id ,
' title ' => $ this -> title ,
' summary ' => $ this -> summary ,
' updated ' => $ this -> updated_at ,
' link ' => $ this -> link ,
' authorName ' => $ this -> authorName ,
]);
}
}
다음으로 피드에 표시되어야 하는 모든 항목을 반환하는 메서드를 만들어야 합니다. 해당 메서드의 이름을 원하는 대로 지정할 수 있으며 원하는 쿼리를 수행할 수 있습니다.
// app/NewsItem.php
public static function getFeedItems ()
{
return NewsItem:: all ();
}
마지막으로 클래스 이름과 피드를 렌더링하려는 URL을 구성 파일에 입력해야 합니다.
// config/feed.php
return [
' feeds ' => [
' news ' => [
/*
* Here you can specify which class and method will return
* the items that should appear in the feed. For example:
* 'AppModel@getAllFeedItems'
* or
* ['AppModel', 'getAllFeedItems']
*
* You can also pass an argument to that method. Note that their key must be the name of the parameter: *
* ['AppModel@getAllFeedItems', 'parameterName' => 'argument']
* or
* ['AppModel', 'getAllFeedItems', 'parameterName' => 'argument']
*/
' items ' => ' AppNewsItem@getFeedItems ' ,
/*
* The feed will be available on this url.
*/
' url ' => ' /feed ' ,
' title ' => ' All newsitems on mysite.com ' ,
/*
* The format of the feed. Acceptable values are 'rss', 'atom', or 'json'.
*/
' format ' => ' atom ' ,
/*
* Custom view for the items.
*
* Defaults to feed::feed if not present.
*/
' view ' => ' feed::feed ' ,
],
],
];
items
키는 다음 중 하나를 반환하는 메서드를 가리켜야 합니다.
Feedable
의 배열 또는 컬렉션FeedItem
의 배열 또는 컬렉션 이 패키지는 피드 세부정보를 표시하는 feed::feed
보기를 즉시 제공합니다.
그러나 피드 구성 내부에 view
키를 제공하여 피드별로 맞춤 보기를 사용할 수 있습니다.
다음 예에서는 사용자 정의 feeds.news
보기( resources/views/feeds/news.blade.php
에 위치)와 함께 이전 News
피드를 사용하고 있습니다.
// config/feed.php
return [
' feeds ' => [
' news ' => [
' items ' => [ ' AppNewsItem ' , ' getFeedItems ' ],
' url ' => ' /feed ' ,
' title ' => ' All newsitems on mysite.com ' ,
/*
* The format of the feed. Acceptable values are 'rss', 'atom', or 'json'.
*/
' format ' => ' atom ' ,
/*
* Custom view for the items.
*
* Defaults to feed::feed if not present.
*/
' view ' => ' feeds.news ' ,
],
],
];
피드를 검색하기 위해 피드 리더는 HTML 문서의 헤드 섹션에서 다음과 같은 태그를 찾습니다.
< link rel =" alternate " type =" application/atom+xml " title =" News " href =" /feed " >
부분 보기를 통해 <head>
에 이를 추가할 수 있습니다.
@ include ( ' feed::links ' )
대안으로 다음 블레이드 구성 요소를 사용할 수 있습니다.
< x-feed-links />
composer test
최근 변경된 사항에 대한 자세한 내용은 변경 로그를 참조하세요.
자세한 내용은 CONTRIBUTING을 참조하세요.
보안 취약점을 보고하는 방법에 대한 보안 정책을 검토하세요.
MIT 라이센스(MIT). 자세한 내용은 라이센스 파일을 참조하십시오.