yii导入目录分隔符
我正在尝试导入facebook SDK,但目录名是“php-SDK-3.2.2”,当尝试导入时-“Yii::import('ext.Yii-facebook-opengraph.php-SDK-3.2.2');“SDK版本正在中断导入。正如tinyByte提到的,您必须更改文件/目录名。没有简单的解决办法 Yii导入函数调用在Yii::base中定义的getPathFalias,如下所示yii导入目录分隔符,yii,import,separator,Yii,Import,Separator,我正在尝试导入facebook SDK,但目录名是“php-SDK-3.2.2”,当尝试导入时-“Yii::import('ext.Yii-facebook-opengraph.php-SDK-3.2.2');“SDK版本正在中断导入。正如tinyByte提到的,您必须更改文件/目录名。没有简单的解决办法 Yii导入函数调用在Yii::base中定义的getPathFalias,如下所示 public static function getPathOfAlias($alias) { if
public static function getPathOfAlias($alias)
{
if(isset(self::$_aliases[$alias]))
return self::$_aliases[$alias];
elseif(($pos=strpos($alias,'.'))!==false)
{
$rootAlias=substr($alias,0,$pos);
if(isset(self::$_aliases[$rootAlias]))
return self::$_aliases[$alias]=rtrim(self::$_aliases[$rootAlias].DIRECTORY_SEPARATOR.str_replace('.',DIRECTORY_SEPARATOR,substr($alias,$pos+1)),'*'.DIRECTORY_SEPARATOR);
elseif(self::$_app instanceof CWebApplication)
{
if(self::$_app->findModule($rootAlias)!==null)
return self::getPathOfAlias($alias);
}
}
return false;
}
正如您所看到的,它使用strpos来解析字符串,除非您修改core(或扩展Yii::Base)以编写一些转义逻辑来解析带“.”的目录名,否则您将无法在其中使用带“.”的目录名
如果由于某种原因无法更改目录名,只需创建一个不带点的符号链接即可
ln -s /path/to/extensions/yii-facebook-opengraph/php-sdk-3.2.2/ /path/to/extensions/yii-facebook-opengraph/php-sdk-3-2-2/
在Yii as中使用和引用
Yii::import('ext.Yii-facebook-opengraph.php-sdk-3-2-2'
您必须删除这些点,如果找到更好的方法,请与我们分享