rss-l4 Laravel 4 RSS 生成器
3

说明

有人说 package 之于 Laravel , 就像 plugin 之于 Wordpress 一样.

Composer 的自动加载机制, 和规范, 加上 Laravel 框架的高度可扩展性, 这套插件系统很多时候, 让人觉得构建一个 Laravel App, 就是像是在帮 Wordpress 安装插件一样简单.

今天想为 PHPHub 做一个 RSS 订阅功能, 让用户可以对精华文章进行订阅, 接下来是整个过程.

下载并安装 package

Rss 生成器, 这种需求是非常常见的, 第一想到的就是到 Github 搜索下 , 果然, 排名第一的就是我们想要的.

rss-l4 RSS builder for Laravel 4

1. 添加 thujohn/rss 到 composer.json 文件里

"thujohn/rss": "dev-master"

2. 命令行 Composer 更新

composer update --prefer-dist

3. 配置 provideraliases

打开 app/config/app.php 文件, 在 providers 数组的最后面加入

'Thujohn\Rss\RssServiceProvider',

aliases 数组最后面添加以下

'Rss' => 'Thujohn\Rss\RssFacade',

至此, 安装完毕.

Let's code

1. 添加 route

打开 app/routes.php 文件, 添加入口

Route::get('/feed', [
    'as' => 'feed',
    'uses' => 'PagesController@feed'
]);

2. 添加页面入口

<h3 class="panel-title text-center">
 社区精华帖  
 <a href="{{ route('feed') }}" style="color: #E5974E; font-size: 14px;" target="_blank">
    <i class="fa fa-rss"></i> 
 </a>
</h3>

效果图:

3. 添加 Controller 代码

在我的 PagesController 最后面, 添加以下方法


/**
 * feed
 */
public function feed()
{
    $topics = Topic::Excellent()->orderBy('created_at', 'desc')
                                    ->with('user')
                                    ->limit(20)
                                    ->get();
    $channel =[
    'title' => 'PHPhub - PHP & Laravel的中文社区', 
    'description' => 'PHPhub是 PHP 和 Laravel 的中文社区,在这里我们讨论技术, 分享技术。', 
    'link' => URL::route('feed')
];

    $feed = Rss::feed('2.0', 'UTF-8');

    $feed->channel($channel);

    foreach ($topics as $topic)
    {
        $feed->item([
                    'title' => $topic->title, 
                    'description|cdata' => str_limit($topic->body, 200), 
                    'link' => URL::route('topics.show', $topic->id), 
                ]);
    }

    return Response::make($feed, 200, array('Content-Type' => 'text/xml'));
}

大功告成 :beer:, 来点效果图庆祝一下.

神奇的 Laravel.


欢迎关注 LaravelTips, 这是一个专注于为 Laravel 开发者服务, 致力于帮助开发者更好的掌握 Laravel 框架, 提升开发效率的微信公众号.


Practice makes perfect.

本帖已被设为精华帖!
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 4
(= ̄ω ̄=)··· 暂无内容!

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!