yii是精心设计,使第三方库可易于集成,进一步扩大yii的功能。 当在一个项目中使用第三方库,程序员往往遇到关于类命名和文件包含的问题。 因为所有yii类以c字母开头,这就减少可能会出现的类命名问题;而且因为yii依赖spl autoload执行类文件包含,如果他们使用相同的自动加载功能或php包含路径包含类文件,它可以很好地结合。
下面我们用一个例子来说明如何在一个yii application从zend framework使用zend_search_lucene部件。
首先,假设protected是application base directory,我们提取zend framework的发布文件到protected/vendors目录 。 确认protected/vendors/zend/search/lucene.php文件存在。
第二,在一个controller类文件的开始,加入以下行:
yii::import('application.vendors.*');
require_once('zend/search/lucene.php');
上述代码包含类文件lucene.php。因为我们使用的是相对路径,我们需要改变php的包含路径,以使文件可以正确定位。这是通过在require_once之前调用yii::import做到。
一旦上述设立准备就绪后,我们可以在controller action里使用lucene类,类似如下:
$lucene=new zend_search_lucene($pathofindex);
$hits=$lucene->find(strtolower($keyword));
以上就是yii框架官方指南系列36——扩展yii:使用第三方库的内容。