11天:聚合提要
以前在symfonyob娱乐下载
使用应用程序可以在一个测试阶段(早期)。事实上,它可能已经吸引很多用户自核心功能(问问题,阅读答案,贡献新的答案)。麻烦的是,复发性用户将发现很难了解最新的事件在使用网站。你需要为他们提供新鲜的新闻没有努力,也有媒体:新闻提要。欧宝平台是合法的吗今天让我们添加新闻源使用。欧宝平台是合法的吗
流行问题饲料
链接到提要的头部
我们想要的是一个RSS受欢迎的问题饲料插入<头>
全球布局。由此产生的HTML应该看起来像:
< link rel =“替代”类型=“应用程序/ rss + xml”title =“使用流行的问题”href =“http://askeet/frontend_dev.php/feed/popular”/ >
要做到这一点,打开layout.php
和添加<头>
:
< ? php回声auto_discovery_link_tag(“rss”,提要/受欢迎的)? >
这是所有。的auto_discovery_link_tag
助手(自动装载AssetHelper.php
助手库)转换模块/行动
到一个站点URI,经过路由引擎。
安装插件
ob娱乐下载Symfony提供了一个sfFeed
插件自动化大多数提要的一代。要安装它,您将使用symfony命令行。ob娱乐下载
syob娱乐下载mfony plugin-install http://plugins.symfony-project.com/sfFeedPlugin清除缓存后美元
这个安装插件的类使用/ lib / sob娱乐下载ymfony /插件/
目录中。
如果你想了解更多关于插件,如何扩展框架,以及如何在几个项目中所使用的功能打包成一个插件,阅读插件一章symfonyob娱乐下载的书。
别忘了清除缓存自项目lib /
文件夹的修改是因为插件。顺便说一下,如果你实验的问题plugin-install
命令,可能是因为你没有安装梨。
我们将讨论这一点sfFeed
类。但首先,我们需要编写几行代码。
创建行动
提要指向受欢迎的
行动的饲料
行动。要创建它,类型:
美元ob娱乐下载symfony init-module前端饲料
然后编辑使用/应用程序/前端/模块/ feed /动作/ action.class.php
并添加以下方法:
公共函数executePopular(){/ /问题$ c=新标准();$ c- >addDescendingOrderByColumn(QuestionPeer::INTERESTED_USERS);$ c- >setLimit(sfConfig::得到(“app_feed_max”));美元问题= QuestionPeer::doSelectJoinUser($ c);美元的饲料= sfFeed::newInstance(“rss201rev2”);/ /通道美元的饲料- >setTitle(“使用流行的问题”);美元的饲料- >setLink(“@homepage”);美元的饲料- >setDescription(列表的最受欢迎的问题问使用网站,被社区”。欧宝体育平台怎么样);/ /物品美元的饲料- >setFeedItemsRouteName(“@question”);美元的饲料- >setItems(美元问题);这个美元- >饲料=美元的饲料;}
定义app_feed_max_question
在您的自定义参数使用/应用程序/前端/ config / app.yml
配置文件:
:提要:马克斯:10
更改视图配置
默认情况下,我们的结果提要/受欢迎
行动将装饰布局,并将有一个text / html
内容类型。这不是我们想要的。所以创建一个view.yml
在使用/应用程序/前端/模块/ feed / config /
目录包含:
:has_layout:从模板:喂
这个失效装饰和力量输出模板feedSuccess.php
,无论行动。
编写模板
这是因为模板非常简单,可以重用其他提要。把这个简单的使用/应用程序/前端/模块/ feed /模板/ feedSuccess.php
模板:
< ? php回声美元的饲料- >getFeed()? >
测试它
现在清除缓存(因为配置发生了变化),刷新网站的任何页面,注意提要图标你最喜欢的web浏览器。检查手动提要通过请求:
http://askeet/feed/popular
其结果是:
< ? xml版本=“1.0”编码=“utf - 8”? >< rss版本=“2.0”><通道><标题>欢迎使用问题< /名称><链接>http://askeet/frontend_dev.php/< /链接><描述>最受欢迎的问题列表使用网站,被社区。欧宝体育平台怎么样< /描述><语言>在< /语言><项目><标题>我能提供我的一步的母亲什么呢?< /名称><描述>我的继母拥有一切的继母通常是提供(手表、吸尘器、耳环、(del . icio . us) (http://del.icio.us)账户)。她的生日是下周,我没钱了,我知道如果我不给她*的*,我的女朋友不会看着我的眼睛。< /描述><链接>http://askeet/frontend_dev.php/question/what-can-i-offer-to-my-step-mother< /链接>< guid>11< / guid>的作用>坐,2005年12月10 09:44:11 + 0100< /发布日期>< /商品><项目><标题>我今晚和我的女朋友吗?< /名称><描述>我们应当符合前面的__Dunkin 'Donuts__晚餐之前,我一点也不知道我能做什么。她_programming_不感兴趣,_space歌剧movies_ _insects_。她有点可爱,所以我__really__需要找到一些能让她来我身边另一个晚上。< /描述><链接>http://askeet/frontend_dev.php/question/what-shall-i-do-tonight-with-my-girlfriend< /链接>< guid>10< / guid><作者>fp@example.com(法比效力)< /作者>的作用>坐,2005年12月10 09:44:11 + 0100< /发布日期>< /商品><项目><标题>我怎么能生成流量来我的博客?< /名称><描述>我有一个非常膨胀博客谈论我的类和配偶和宠物,最喜欢的电影。< /描述><链接>http://askeet/frontend_dev.php/question/how-can-i-generate-traffic-to-my-blog< /链接>< guid>12< / guid><作者>fz@example.com(弗朗索瓦•Zaninotto)< /作者>的作用>坐,2005年12月10 09:44:12 + 0100< /发布日期>< /商品>< /通道>< / rss>
那么快?
神奇的
现在你也许会说:symfony怎么知道到哪里去找到问题ob娱乐下载的作者,他/她的电子邮件,和symfony怎么猜到的URI的问题细节呢?答案是:这是魔法。
如果你不相信魔法,那么除了窗帘和满足sfFeed
类。这个类是能够解释对象的方法的名称作为一个参数传递给它- > setItems ()
方法。的问题
对象有- > getUser ()
方法,所以它是用来找到作者的一个问题。的用户
对象有- > getEmail ()
方法,所以这个也是用来确定作者的电子邮件。并传递给规则名称- > setFeedItemsRouteName ()
方法是:
问题:url: / /问题:stripped_title参数:{模块:问题,行动:}
它包含一个stripped_title
参数,所以- > getStrippedTitle ()
的方法问题
URI对象来确定问题。
所有发生的,因为意义——getter方法的名字sfFeed
类理解对象而设计的。这个类的推理机制的详细描述饲料章symfonyob娱乐下载的书——引用它,看看如何问,例如,没有电子邮件地址,即使一个提要- > getEmail ()
方法存在对象的作家。
请注意
饲料的观点有一个XML内容类型,因此symfony将足够聪明不添加web调试工具栏(否则XML将ob娱乐下载开得是有效的了)。如果您需要手动禁用web调试工具栏,你可以调用:
sfConfig:设置(“sf_web_debug”,假);
(找到更多关于web调试工具栏中调试章symfonyob娱乐下载的书)。
界面的改进
路由
提要的URL和普通的一样重要,所以附加以下routing.yml
:
#提要feed_popular_questions: url: / feed /流行的参数:{模块:喂,行动:流行}
RSS的形象
每当一个链接列表对应字段,一个漂亮的RSS图标显示,连同一个RSS链接。因为这将会发生几次,创建一个link_to_feed ()
功能GlobalHelper.php
:
函数link_to_feed(美元的名字,美元的uri){返回link_to(image_tag(“feed.gif”,数组(“alt”= >美元的名字,“标题”= >美元的名字,“对齐”= >“absmiddle”)),美元的uri);}
你会找到的feed.gif
图像在SVN储存库。
现在,编辑模块/栏/模板/ defaultSuccess.php
如下:
<李> < ? php回声link_to(“流行的问题”,“@popular_questions”)? >< ? php回声link_to_feed(“流行的问题”,“@feed_popular_questions”)李? > < / >
明天见
本教程是应该持续一个小时,只有十五分钟过去了。你担心吗?不喜欢。这是另一个敏捷编程的教训:如果你发现一个非常简单的解决你的问题,这可能是正确的。不需要太多的时间传递给开发一个功能,如果已经工作。你现在知道,只有十五分钟是必要的设置,测试和启动一个RSS提要。毕竟,symfony提ob娱乐下载供专业网络工具对懒惰的人,所以享受你的空闲时间,今天离开你的电脑。
如果你想要一些symfony的东西,试着做一ob娱乐下载个新提要的最新问题,最新的答案一般来说,尤其是最新的回答一个问题。它不应该带你超过15分钟,所以你会有时间下载完整的代码使用SVN储存库、标记release_day_11
如果你做得很好,并检查。注意,有一个隐藏的困难——注意路由规则用于饲料的最新评论。
如果你还剩下几分钟,去使用论坛和表达自己。
symfony明天,我们将发送电子邮件,因为我们相信我们的一些用户会忘ob娱乐下载记他们的接入码。在那之前,睡个好觉。
这个工作许可适用创作共用署名下衍生著作3.0 Unported许可执照。