文件包含在Yii中

时间:2012-12-23 20:48:07

标签: php yii solarium

我正在尝试使用日光浴扩展(扩展为php中的solr)扩展我的yii应用程序。

但是,扩展的库有多个子目录。因此,我必须包含来自特定子目录的文件,如下所示:

Yii::import('application.extensions.Library.Solarium.*');
Yii::import('application.extensions.Library.Solarium.Client.*');
Yii::import('application.extensions.Library.Solarium.Client.RequestBuilder.*');

如果我已经包含了所有文件,这会导致代码丑陋以及不可预测性。虽然我现在正在执行此操作,但我会将其移动到稍后进行生产。有没有其他方便的方法来包含目录和子目录中的所有文件?有很多子目录,所以提到每个子目录将导致20-30行代码。一种选择是将所有库文件放在一个目录中进行生产。但是我不确定它是否会影响功能(我通常是“新的”实现扩展/库)。

1 个答案:

答案 0 :(得分:2)

当我向Yii添加第三方课程时,我将它们放在protected/components/下的文件夹中,如/protected/components/solr

然后在主要配置中,我将以下行添加到导入部分:

'import' => array(
      'application.components.solr.*',
      ...

但是你需要逐个添加每个子文件夹,这是由于性能问题,Yii的开发人员在一些版本之前删除了递归导入。如果你认为这很糟糕,那么你可以使用命名空间来做你想做的事,但你需要PHP 5.3