继承Sensio Generator Bundle

时间:2013-10-31 19:48:02

标签: symfony

我看到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中,就像文档说它不起作用

我需要为覆盖命令

创建我自己的包

我会混合两者吗? “继承”bundle for override命令并覆盖app / Resources中的模板

或者我可以juste“继承”bundle并覆盖bundle中的命令和骨架模板吗?

回复

修改

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

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

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:-1)

请阅读Symfony 2 documentation。在通过此覆盖getParent()之后,您可以替换命令。记得在AppKernel

中将子包放在父包之后

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

要覆盖:Resources / SensioGeneratorBundle / template_name.twig

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