我正在尝试将MaxMind的GeoIp2放入我的Yii应用程序中。基本上,我将文件复制到的“ src”(请参见上一链接)下protected -> vendors -> maxmind
。我的应用程序下的文件夹结构如下:
protected
|---- vendors
|---- Zend
|---- maxmind
|---- Database
|---- Reader.php
|---- Model
|---- ...
|---- ...
之后,我在index.php文件中创建了路径别名:
Yii::setPathOfAlias('Zend', Yii::getPathOfAlias('application.vendors.Zend'));
Yii::setPathOfAlias('GeoIp2', Yii::getPathOfAlias('application.vendors.maxmind'));
该路径适用于'Zend'别名,但对于'GeoIp2'而言,通过返回失败null
。
Yii::createApplication("FrontendApplication", $config)->run();
echo "Path 1: " . Yii::getPathOfAlias("Zend"). '<br />'; // Correct path!
echo "Path 2: " . Yii::getPathOfAlias("GeoIp2"). '<br />'; // <==== NULL
echo "Maxmind path: " . Yii::getPathOfAlias('application.vendors.maxmind'). '<br />'; // correct path
var_dump(is_dir(Yii::getPathOfAlias('application.vendors.maxmind'))); // true
任何想法为什么会发生这种情况?
谢谢!
getPathOfAlias()
创建路径别名的调用是在的构造函数中创建的CApplication
。但是在包含main.php时尚未调用构造函数。
要配置路径别名,请在main.php中使用aliases属性。像这样:
return array(
'aliases' => array(
'GeoIp2' => 'application.vendors.maxmind',
),
...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句