symfony忽略了windows7上cli中的插件文件

时间:2011-10-20 07:30:54

标签: symfony1 symfony-1.4

我正在尝试教义:generate-migrations-diff,symfony似乎忽略了dirs lib\model\doctirne\PLUGINNAME中的文件 - 并创建了删除插件表的迁移。

我正在尝试执行doctrine:build --all-classes - 在错误的位置创建文件(表单和过滤器) - lib\filter\doctrinelib\form\doctrine - 但不应该在哪里 - lib\filter\doctrine\PLUGINNAME(有插件文件(被忽略))。

我正在尝试,例如,在插件中编辑schema.yml MODELNAME并生成模型 - 模型不生成,没有更改,但应在{{BaseMODELNAME.class.php中编辑文件lib\model\doctrine\PLUGINNAME 1}}目录

此外,并非所有插件都可以跟踪此类行为。对于sfDoctrineGuardPlugin(以及我的几乎所有插件)一切正常。对方案的任何更改(在插件方案中)都将反映在预期的文件中。

但对于插件sfGuardUserLoginHistory和PBillingPlugin(我的插件),一切都如上所述。

我不知道问题出在哪里。在linux上一切都还可以。

2 个答案:

答案 0 :(得分:1)

问题发生在我的多个应用项目中:

我的项目中有五个应用程序:

  • API
  • 后端
  • 前端
  • 计费
  • 其他

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)而不是其他插件,并且会在全局文件夹中生成模型和内容(如上所述)。

答案 1 :(得分:1)

Linux下的相同问题。

这是一种解决方法:

在symfony命令行中指定应用程序参数,例如:

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

YOUR_APP_NAME应该是您的主要应用,即。后端或其他一些......

这个技巧对我有用。