2013-11-09 5 views
1

페이스 북 SDK를 가져 오려고하는데 디렉토리 이름이 "php-sdk-3.2.2"이고 가져올 때 - "Yii :: import ('ext.yii-facebook-opengraph.php- sdk-3.2.2 '); " SDK 버전이 가져 오기를 위반합니다.yii 가져 오기 디렉토리 구분자

+1

로 YII에 관계없이 심볼릭 링크를 생성하기위한 디렉터리 이름을 변경할 수없는 경우

당신은 당신이 경우, 점을 제거 할 수있어 우리와 함께 나누고 더 좋은 길을 찾았습니다. – tinybyte

답변

2

tinyByte에 언급 된대로 파일/디렉토리 이름을 변경해야합니다. 그 주위에는 간단한 방법이 없습니다.

YII 가져 오기 기능을 사용하면 당신이 핵심을 수정하지 않는 한, 문자열을 구문 분석 strpos를 사용하여 참조 (또는 YII :: Base를 확장 할 수 있습니다으로

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 ::베이스에 정의되어 getPathOfAlias를 호출)를 사용하여 이스케이프 논리를 작성하여 디렉토리 이름을 '.' 디렉토리 이름을 "."과 함께 사용할 수 없습니다. 그들 안에. 몇 가지 이유가 단순히 점

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::import('ext.yii-facebook-opengraph.php-sdk-3-2-2'