Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 文件包含在Yii中_Php_Yii_Solarium - Fatal编程技术网

Php 文件包含在Yii中

Php 文件包含在Yii中,php,yii,solarium,Php,Yii,Solarium,我试图用solarium扩展(php中solr的扩展)扩展我的yii应用程序 但是,扩展的库有多个子目录。因此,我必须包含特定子目录中的文件,如下所示: Yii::import('application.extensions.Library.Solarium.*'); Yii::import('application.extensions.Library.Solarium.Client.*'); Yii::import('application.extensions.Library.Solari

我试图用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行代码。一种选择是将所有库文件放在一个目录中进行生产。但是,我不确定它是否会影响功能(我对实现扩展/库通常是“新的”)

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

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

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

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

我将所有文件移动到一个目录下,至少是我正在使用的文件,我必须测试它,看看它是否会在某些情况下抛出错误。