1

我看到http://symfony.com/doc/current/bundles/SensioGeneratorBundle/index.html

如果我在 app/Resources/SensioGeneratorBundle/skeleton/...

用树枝标签没问题

{% extends 'skeleton/bundle/Bundle.php.twig' %}

和覆盖块

但是如果我创建自己的 GeneratorBundle “继承” SensioGeneratorBundle

public function getParent() { return 'SensioGeneratorBundle'; }

并将我的覆盖骨架模板放在 BUNDLE_PATH/Resources/SensioGeneratorBundle/skeleton 中,就像文档说它不起作用

我需要为覆盖命令创建自己的包

我会混合两者吗?应用程序/资源中覆盖命令和覆盖模板的“继承”包

或者我可以“继承”捆绑包并覆盖捆绑包中的命令和骨架模板?

谢谢回复

编辑

我在 SensioGeneratorBundle 中打开了一个问题:

https://github.com/sensiolabs/SensioGeneratorBundle/issues/233

GeneratorBundleCommand 在方法 getGenerator() 中不采用我的继承包参数

4

2 回答 2

0

显然,骨架文件夹不能像这里描述的其他覆盖模板一样被覆盖:

http://symfony.com/doc/current/cookbook/bundles/inheritance.html

告诉我我是否错了

和 BUNDLE_PATH 中描述的:

http://symfony.com/doc/current/bundles/SensioGeneratorBundle/index.html

对应于任何包,我认为对应于我的继承 sensio 生成器包。

所以我把我的骨架放在 APP_PATH

编辑:此功能的拉取请求已打开:https ://github.com/sensiolabs/SensioGeneratorBundle/pull/235

于 2013-11-04T15:57:23.180 回答
-1

请阅读Symfony 2 文档。通过此覆盖 getParent() 后,您可以替换命令。记得在 AppKernel 中将子包放在父包之后

经典包继承不能覆盖骨架模板。每个包都可以提供自己的控制器和学说模板。要覆盖全局骨架(如捆绑包),您必须将其放在 app/Resources 中。

覆盖: Resources/SensioGeneratorBundle/template_name.twig

扩展:Resources/SesnsioGeneratorBundle/skeleton/template_name.twig

于 2013-11-01T09:49:26.057 回答