0 關注者

未來強化

1. 使用主題

即使不撰寫任何程式碼,我們的部落格應用程式已經是可套用主題的。若要使用主題,我們主要需要透過在主題中撰寫自訂的檢視檔來開發主題。例如,若要使用名為 classic 且使用不同頁面佈局的主題,我們會建立一個佈局檢視檔 /wwwroot/blog/themes/classic/views/layouts/main.php。我們也需要變更應用程式組態,以指明我們選擇 classic 主題。

return array(
    ......
    'theme'=>'classic',
    ......
);

2. 國際化

我們也可以將我們的部落格應用程式國際化,使其頁面能以不同語言顯示。這主要包含兩個方面的努力。

首先,我們可以建立不同語言的檢視檔。例如,針對 PostControllerindex 頁面,我們可以建立一個檢視檔 /wwwroot/blog/protected/views/post/zh_cn/index.php。當應用程式設定為使用簡體中文(語言代碼為 zh_cn)時,Yii 將自動使用這個新的檢視檔,而不是原始的檢視檔。

其次,我們可以為程式碼產生的訊息建立訊息翻譯。訊息翻譯應儲存為 /wwwroot/blog/protected/messages 目錄下的檔案。我們也需要修改我們使用文字字串的程式碼,方法是將它們包在 Yii::t() 方法呼叫中。

有關國際化的更多詳細資訊,請參閱指南

3. 使用快取改善效能

雖然 Yii 框架本身非常有效率,但使用 Yii 撰寫的應用程式不一定有效率。在我們的部落格應用程式中,有幾個地方可以改善效能。例如,標籤雲 Portlet 可能是效能瓶頸之一,因為它涉及複雜的資料庫查詢和 PHP 邏輯。

我們可以利用 Yii 提供的完善快取功能來改善效能。Yii 中最有用的元件之一是 COutputCache,它可以快取頁面顯示的片段,使產生片段的底層程式碼不需要為每個請求執行。例如,在佈局檔 /wwwroot/blog/protected/views/layouts/column2.php 中,我們可以將標籤雲 Portlet 用 COutputCache 包起來。

<?php if($this->beginCache('tagCloud', array('duration'=>3600))) { ?>
 
    <?php $this->widget('TagCloud', array(
        'maxTags'=>Yii::app()->params['tagCloudCount'],
    )); ?>
 
<?php $this->endCache(); } ?>

透過上述程式碼,標籤雲顯示將從快取提供,而不是為每個請求即時產生。快取內容將在快取中保持有效 3600 秒。

4. 新增功能

我們的部落格應用程式僅具有非常基本的功能。若要成為完整的部落格系統,還需要更多功能,例如,日曆 Portlet、電子郵件通知、文章分類、封存文章 Portlet 等等。我們將把這些功能的實作留給有興趣的讀者。

發現錯字或您認為此頁面需要改進嗎?
在 GitHub 上編輯 !