2013-11-01 66 views
0

我一直在調試這個很長一段時間,我找不到任何解決方案 - 所以這是我最後的希望。PHP:爲Yii Framework安裝minScript擴展

我試圖按照這個installation指南爲Yii安裝/配置一個名爲minScript的擴展。

我把我的擴展文件夾中提取的擴展和更改配置/ 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/Web服務器設置一個麻煩。在第一種情況下,在配置/ main.php我用所有的URL與格式domain.com/site/parm1/parm2並加入此之前路由規則解決了麻煩:

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

編輯:我忘了這一點:

'controllerMap'部分應該在config/main.php中的'components'之後,

祝你好運!

+0

它現在似乎在工作。我移動了controllerMap,並啓用了urlManager,這似乎是個竅門。謝謝! – rnngau

0

嘗試插入(需要聲明別名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,您不需要定義由Yii預定義的ext名稱空間。儘管我嘗試添加它,但它仍然會產生相同的錯誤。 – rnngau

+0

請檢查,結果Yii :: getPathOfAlias('ext.minScript.components') – CreatoR