使用第三方函式庫

Yii 是精心設計的使得第三方函式庫可以輕易整合,進一步擴大 Yii 的功能。 當在一個項目中使用第三方函式庫,程式設計師往往遇到關於類別命名和檔案載入的問題。 因為所有 Yii 類別以 C 字母開頭,這就減少可能會出現的類命名問題;而且,因為 Yii 依賴於 SPL autoload 執行類別檔案載入,它可以跟其他函式庫很好地結合,如果他們使用相同的自動加載功能或 PHP 包含路徑包含類別檔案。

下面我們用一個例子來說明如何在一個 Yii 應用程式從 Zend framework 使用Zend_Search_Lucene 元件。

首先,假設 protectedapplication base directory,我們擷取 Zend Framework 的發佈檔案到 protected/vendors 目錄。確認 protected/vendors/Zend/Search/Lucene.php 檔案存在。

第二,在一個控制器類別檔案的開始,加入如下:

Yii::import('application.vendors.*');
require_once('Zend/Search/Lucene.php');

上述程式碼包含類檔案 Lucene.php。因為我們使用的是相對路徑,我們需要改變 PHP 的包含路徑,以使檔案可以正確定位。這是通過在 require_once 之前調用 Yii::import 做到。

一旦上述設立準備就緒後,我們可以在控制器的動作裡裡使用 Lucene 類別,如下:

$lucene=new Zend_Search_Lucene($pathOfIndex);
$hits=$lucene->find(strtolower($keyword));
$Id$