2013-11-01 3 views
0

Я отлаживал это довольно долгое время и не смог найти какое-либо решение - так что это моя последняя надежда.PHP: Установка расширения minScript в Yii Framework

Я пытаюсь установить/настроить расширение для Yii, называемое minScript, следуя этому руководству installation.

I место извлеченного расширения в моей папке расширений и изменить конфигурации/main.php на следующее:

return array(
'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..', 
'name'=>'Demo app', 

'controllerMap'=>array(
    'min'=>array(
     'class'=>'ext.minScript.controllers.ExtMinScriptController', 
    ), 
), 

... 

// application components 
'components'=>array(
    'clientScript'=>array(
     'class'=>'ext.minScript.components.ExtMinScript', 
     'minScriptDebug'=>true, 
    ), 

... 

Хотя, когда я пытаюсь запустить его, я получаю сообщение об ошибке:

CException

Недопустимый псевдоним «ext.minScript.components.ExtMinScript». Убедитесь, что он указывает на существующий PHP-файл, и файл доступен для чтения.

Файл существует в определенной папке и доступен для чтения, но всегда появляется сообщение об ошибке.

Кто-нибудь знает, что я делаю неправильно?

ответ

1

Если установка на Linux, be careful with spelling in file and directory names. Я потратил много времени, пытаясь решить ту же проблему с видом и другими компонентами или расширениями,

Если нет, попробуйте удалить:

'minScriptDebug'=>true, 

От вашего блока "компоненты.

Также активы и защищенное/время выполнения должны быть разрешимыми (рекурсивно).

Ваша файловая структура должна выглядеть следующим образом:

protected/extensions/minScript/ 
           components/ 
             ExtMinScript.php 
           controllers/ 
             ExtMinScriptController.php 
           vendors/... 
             minify/... 

И, наконец, может быть, у вас есть проблемы с urls, правилами маршрутизации или с подключениями .htaccess/веб-сервера. В первом случае, в конфигурации/main.php Я использую все URLs с форматом domain.com/site/parm1/parm2 и добавляющие это до правил маршрутизации решается проблема:

'urlManager'=>array(
    'urlFormat'=>'path', 

EDIT: Я забыл это:

«Контрольная карта» должна быть после «компонентов» в config/main.php,

Удачи!

+0

Кажется, сейчас работает. Я переместил controllerMap и включил urlManager, и это, казалось, сделало трюк. Благодаря! – rnngau

0

Try вставки перед возвращением (вам нужно объявить псевдоним ext - установить его на каталог расширения):

Yii::setPathOfAlias('ext', 
    dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'extension'; 
+0

Согласно http://www.yiiframework.com/doc/guide/1.1/en/basics.namespace#root-alias, вам не нужно определять пространство имен ext, поскольку оно предопределено Yii. Я попытался добавить его, но он все равно производит ту же ошибку. – rnngau

+0

проверьте, пожалуйста, результат Yii :: getPathOfAlias ​​('ext.minScript.components') – CreatoR

Смежные вопросы