我们正在一个大型项目中使用symfony,该项目将创建数百个symfony模块、模型、fomr和过滤器。但是,将所有的模块、模型、表单保存在它们的重复文件夹结构中是非常难以维护的;即将300个模块保持在APP_ DIR/modules/中是不合适的。我想对它们进行分类,例如,我只想在modules/dir下放5个顶级文件夹,并将symfony模块放在这些文件夹中;表单/模型/过滤器也是如此。
你能建议做这件事的方法吗?
谢谢,Shafiul
为什么不将模块创建为插件。。这样你就可以有5个插件,里面有不同的模块。此外,lib模式等也会放在不同的文件夹中,然后。。。
要更改模型、窗体和过滤器的库,请在lib/目录中创建文件夹,并在config/目录中新建autoload.yml,其中包含以下内容:
#config/autoload.yml
autoload:
my_classes:
name: my_classes
path: %SF_LIB_DIR%/myLib
recursive: true
只要保持recursive: true
,子文件夹也将自动加载
您无法更改模块的目录结构。但是,您可以更改每个symfony应用程序的默认模块位置,方法是将此行添加到ProjectConfiguration类的setup((方法中,以覆盖sf_app_template_dir设置:apps/XXX/config/XXXConfiguration.class.php
sfConfig::set('sf_app_module_dir', sfConfig::get('sf_app_dir').DIRECTORY_SEPARATOR.'myModules');