Symfony игнорирует плагины файлов в Cli на Windows7 - PullRequest
1 голос
/ 20 октября 2011

Я пытаюсь учить: generate-migrations-diff, symfony, кажется, игнорирует файлы в dirs lib\model\doctirne\PLUGINNAME - и создает migretion, который удаляет таблицы плагинов.

Я пытаюсь выполнить доктрину: build --all-classes - создает файлы (формы и фильтры) в неправильном месте, где это должно быть - lib\filter\doctrine и lib\form\doctrine - но не там, где должно - lib\filter\doctrine\PLUGINNAME ( есть файлы плагинов (игнорируется)).

Я пытаюсь, например, отредактировать schema.yml из MODELNAME в плагине и сгенерировать модели - модели не генерируются, никаких изменений, но должны быть отредактированы файл BaseMODELNAME.class.php в каталоге lib\model\doctrine\PLUGINNAME

Более того, не во всех плагинах такое поведение можно отследить. Для sfDoctrineGuardPlugin (и почти всех моих плагинов) все в порядке. Любые изменения в схеме (в схеме плагинов) будут отражены в ожидаемых файлах.

Но для плагинов sfGuardUserLoginHistory и PBillingPlugin (мой плагин) все идет так, как я описал выше.

Я не знаю, где проблема. На linux все ок.

Ответы [ 2 ]

1 голос
/ 08 января 2013

Та же проблема в Linux.

Вот способ обхода:

укажите параметр приложения в командной строке вашей Symfony, например:

./symfony doctrine:generate-migrations-diff --application="YOUR_APP_NAME"
./symfony doctrine:build --model --application="YOUR_APP_NAME"

YOUR_APP_NAME должно быть вашим основным приложением, т.е.бэкэнд или что-то подобное ...

Этот трюк работает для меня.

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

Проблема была в моем проекте с несколькими приложениями:

У меня есть пять приложений в моем проекте:

  • API
  • Backend
  • Frontend
  • billing
  • прочее

И приложение api имеет собственную конфигурацию включенных плагинов:

class apiConfiguration extends sfApplicationConfiguration
{
  public function setup()
  {
    parent::setup();


    $this->plugins = array();
    $this->pluginPaths = array();

    $this->enablePlugins(array(
        'sfDoctrinePlugin',
        'sfDoctrineGuardPlugin',
        //'PAPIClientPlugin', //needed?
    ));

  }

  public function configure()
  {
  }
}

Почему api?Это в алфавитном порядке первым в списке файлов.А конфигурация api будет перезаписывать другие настройки, поэтому symfony будет думать, что у него есть только два включенных плагина (sfDoctrinePlugin и sfDoctrineGuardPlugin), но не другие, и будет генерировать модели и вещи в глобальных папках (как описано в вопросе выше).

...