我正在尝试导入 facebook SDK,但目录名称是“php-sdk-3.2.2”,当尝试导入时 -“Yii::import('ext.yii-facebook-opengraph.php-sdk-3.2.2') ;" SDK 版本正在中断导入。
问问题
651 次
1 回答
3
正如 tinyByte 所提到的,您将不得不更改您的文件/目录名称。没有简单的解决方法。
Yii Import 函数调用在 Yii::base 中定义的 getPathOfAlias 如下
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 来解析字符串,除非您修改核心(或扩展 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 中引用为
Yii::import('ext.yii-facebook-opengraph.php-sdk-3-2-2'
于 2013-11-10T08:28:43.420 回答