Я пытаюсь импортировать файл facebook SDK, но имя каталога «php-sdk-3.2.2», а при попытке импортировать - «Yii :: import (« ext.yii-facebook-opengraph.php- СДК-3.2.2');» версия SDK нарушает импорт.yii import directory separator
1
A
ответ
2
Как указано в tinyByte, вам придется изменить имя файла/каталога. Простейшего пути нет.
функцияYii Импорт вызовов getPathOfAlias, которая определена в Yii :: основание, как показано ниже
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'
вы должны удалить точки, если вы нашли лучший способ, поделитесь с нами – tinybyte