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;
}
ご覧のとおり、コアを変更して (または Yii::Base を拡張して)、ディレクトリ名を「.」で解析するエスケープ ロジックを記述しない限り、strpos を使用して文字列を解析します。ディレクトリ名に「.」を使用することはできません。それらの中で。
何らかの理由でディレクトリ名を変更できない場合は、単純にドットなしでディレクトリ名へのシンボリック リンクを作成します。
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 に答える