所以我读了很多关于模板的覆盖以及 Symfony 中的包的覆盖。
我正在使用新的 Symfony 2.3,我还没有在较低版本的 Symfony 中尝试过。
我遵循了有关在 Symfony 中覆盖捆绑包的教程:http: //symfony.com/doc/2.3/cookbook/bundles/inheritance.html
我遵循了关于覆盖 FOSUserBundle 控制器的教程,这实际上是一回事: https ://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/overriding_controllers.md
我有一个名为 Acme/WebBundle 的包。
现在我做了以下事情:
- 创建了一个名为 Acme/UserBundle 的新包。
在这个包中创建了文件 AcmeUserBundle.php。
<?php namespace Acme\UserBundle; use Symfony\Component\HttpKernel\Bundle\Bundle; class AcmeUserBundle extends Bundle { public function getParent() { return 'FOSUserBundle'; } }
创建了以下文件结构:
-src -Acme -UserBundle -Controller RegistrationController.php -Entity User.php -Resources -translations -views AcmeUserBundle.php
在 RegistrationController.php 中,我将命名空间设置为:
namespace Acme\UserBundle\Controller;
把FOSUserBundle的注册控制器的内容复制到我的。
添加到 registerAction() 的开头
die("message");
现在,当我进入注册表时,默认 /register 路由,我没有死,一切正常。它看不到我小时候的捆绑包,没有任何东西被覆盖,我一直试图让它工作很长时间,因此我在这里提出问题。
我做错什么了吗?