Symfony 1.4 Я получаю неправильные значения в app.yml - PullRequest
0 голосов
/ 03 января 2012

Очевидно, что не все так просто. Начнем с самого начала: я работаю над общим проектом, и вчера меня попросили добавить плагин mgI18n. Я шаг за шагом следил за файлом readme, но когда он запустил командную строку для создания таблицы, используемой плагином, я получил это:

база данных "" не существует

Я искал его и обнаружил, что sfConfig :: get ('app_mgI18nPlugin_connection'); вернул пустое значение. Это было странно, потому что я сделал каждый шаг правильно, установив значение в моем app.yml и очистив кэш Symfony, поэтому я зарегистрировал sfConfig :: getAll (); и обнаружил, что единственными значениями для 'app_', хранящимися здесь, были значения из файла app.yml в папке плагинов kdDoctrineGuardFacebookConnectPlugin. Я уже пытался удалить этот файл и очистить кеш, получая только потерю этих значений.

Вот содержимое файла:

проект / приложение / интерфейс / конфигурация / 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 не загружаются? Как мне исправить это поведение?

Заранее всем спасибо за помощь, если вам нужно больше подробностей, я с удовольствием добавлю их

1 Ответ

1 голос
/ 03 января 2012

Если я вас правильно понял, вы находитесь в контексте задачи командной строки (какой-то sfTask).Задачи Symfony по умолчанию не запускаются в контексте приложения.В большинстве случаев просто назовите вашу задачу как

./symfony namespace:name --application=frontend

, и у вас будут ваши настройки.Если это ваша собственная задача, просто добавьте ей параметр со значением по умолчанию в вашем методе настройки:

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

Параметры плагинов загружены правильно, поскольку плагины настроены для каждого проекта, а не приложения (вы включаете их в ProjectConfiguration, а несгенерированный класс frontendConfiguration)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...