无需编写任何代码,我们的博客应用程序已经是可主题化的。要使用主题,我们主要需要通过编写自定义视图文件来开发主题。例如,要使用名为“classic”的主题,该主题使用不同的页面布局,我们将创建一个布局视图文件“/wwwroot/blog/themes/classic/views/layouts/main.php”。我们还需要更改应用程序配置以指示我们选择“classic”主题
return array(
......
'theme'=>'classic',
......
);
我们还可以国际化我们的博客应用程序,以便其页面可以以不同的语言显示。这主要涉及两个方面的努力。
首先,我们可以创建不同语言的视图文件。例如,对于“PostController”的“index”页面,我们可以创建一个视图文件“/wwwroot/blog/protected/views/post/zh_cn/index.php”。当应用程序配置为使用简体中文(语言代码为“zh_cn”)时,Yii 会自动使用这个新的视图文件来代替原来的文件。
其次,我们可以为代码生成的那些消息创建消息翻译。消息翻译应该保存为“/wwwroot/blog/protected/messages”目录下的文件。我们还需要修改使用文本字符串的代码,将它们括在方法调用“Yii::t()”中。
有关国际化的更多详细信息,请参阅指南。
虽然 Yii 框架本身非常高效,但并不一定意味着用 Yii 编写的应用程序就高效。在我们的博客应用程序中,有几个地方可以提高性能。例如,标签云Portlet 可能是性能瓶颈之一,因为它涉及复杂的数据库查询和 PHP 逻辑。
我们可以利用 Yii 提供的完善的缓存功能来提高性能。Yii 中最有用组件之一是“COutputCache”,它缓存页面显示的片段,这样就不需要为每个请求执行生成该片段的底层代码。例如,在布局文件“/wwwroot/blog/protected/views/layouts/column2.php”中,我们可以用“COutputCache”包含标签云Portlet
if($this->beginCache('tagCloud', array('duration'=>3600))) { $this->widget('TagCloud', array( 'maxTags'=>Yii::app()->params['tagCloudCount'], )); $this->endCache(); }
使用上面的代码,标签云显示将从缓存中提供,而不是为每个请求动态生成。缓存的内容将在缓存中保持有效 3600 秒。
我们的博客应用程序只有非常基本的功能。要成为一个完整的博客系统,还需要更多功能,例如日历Portlet、电子邮件通知、帖子分类、归档帖子Portlet 等等。我们将把这些功能的实现留给感兴趣的读者。
发现错别字或您认为此页面需要改进?
在 github 上编辑它 !
注册 或 登录 以便评论。