2012-01-03 44 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