2

Facebook SDK をインポートしようとしていますが、ディレクトリ名は "php-sdk-3.2.2" で、インポートしようとすると -"Yii::import('ext.yii-facebook-opengraph.php-sdk-3.2.2') ;" SDK バージョンがインポートを中断しています。

4

1 に答える 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 に答える