2012-01-03 38 views
0

顯然它並不那麼簡單。讓我們從頭開始:我正在開發一個共享項目,昨天我被要求添加插件mgI18n。我也跟着一步自述文件的步驟,但是,當它來到了運行命令行創建的插件使用的表,我得到這個:Symfony 1.4我在app.yml中得到錯誤的值

數據庫「」不存在

我搜索它,我發現sfConfig :: get('app_mgI18nPlugin_connection');返回一個空值。這很奇怪,因爲我已經完成了每一步,在我的app.yml中設置了值並清除了symfony緩存,所以我記錄了sfConfig :: getAll();並發現這裏存儲的'app_'的唯一值是來自kdDoctrineGuardFacebookConnectPlugin的插件文件夾中的文件app.yml。我已經嘗試刪除該文件並清除緩存,只獲取這些值。

下面是該文件的內容:

項目/應用/前端/配置/ app.yml

all: 
    #other values 
    facebook: 
    appId:     yyy 
    secret:     yyy 
    cookie:     true 
    script_lang:   fr_FR 
    perms:     email 
    mgI18nPlugin: 
    connection: doctrine 
    cultures_available: 
     fr: Français 
     en: English 
     it: Italiano 
     de: Deutsch 

項目/插件/ kdDoctrineGuardFacebookConnectPlugin /配置/ app.yml

all: 
    facebook: 
    appId:     xxx 
    secret:     xxx 
    cookie:     true 
    script_lang:   fr_FR 
    perms:     email 

這就是我在記錄sfConfig :: getAll()時所得到的結果。 :

array('app_facebook_appId' => 'xxx', 
'app_facebook_secret' => 'xxx', 
'app_facebook_cookie' => true, 
'app_facebook_script_lang' => 'fr_FR', 
'app_facebook_perms' => 'email', 
) 

爲什麼主app.yml的值沒有加載?我如何糾正這種行爲?

謝謝大家提前對您有所幫助,如果你需要更多的細節,我會glady它們添加

+0

我試圖記錄sfConfig :: getAll();在一個動作中,我得到了相同的結果 – 2012-01-04 09:06:05

+0

也嘗試在恢復項目後從頭開始安裝插件,這次使用了pear,但它保留了相同的結果。我也用這個[yaml解析器](http://yaml-online-parser.appspot.com/)驗證了yaml文件,並且沒有發現任何東西... – 2012-01-04 15:08:52

回答

1

如果我理解你以及你在一個命令行任務上下文(一些sfTask)。默認情況下,Symfony任務不會在應用程序上下文中運行。在大多數情況下,只需將您的任務稱爲

./symfony namespace:name --application=frontend 

並且您將獲得您的配置。 如果是自己的任務只是將它加入默認值的選項,你的配置方法:

$this->addOptions(array(
    new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name', 'frontend'), 
    ... 
) 

插件設置是否正確加載,因爲插件每個項目不申請配置(你讓他們在ProjectConfiguration,不產生前端配置類)

+0

我運行的e命令行是 './symfony i18n :mg-create-table frontend' (由自述文件指定)。我現在嘗試在mgI18n插件的config文件夾中添加一個app.yml文件,但symfony仍然沒有讀取它(我知道它不會那麼簡單)...但是,我嘗試設置db的默認值連接名稱(包含在插件中,它不是我的),以解決問題,並且它可以工作,但是當我運行應用程序時,它會再次發生,因爲插件嘗試加載可用文化 – 2012-01-04 08:39:37