Symfony2新捆绑包


Symfony2 new bundle

我最近开始了我的Symfony2世界之旅。我下载的档案(标准版(附带了一个演示包AcmeDemoBundle。我试着用官方网站提供的Symfony2书进行编码。因此,我通过Symfony2控制台创建了一个自己的捆绑包(EXPHelloBundle(。然后,我创建了与当前捆绑包关联的控制器。

问题是:每当我运行我的应用程序(localhost/app_dev.php/hello/anything(时,浏览器都会打印"hello-anything"。我知道这个消息是从AcmeDemoBundle(Symfony2归档附带的捆绑包(运行的。无论我对EXP/HelloControlle.php做了什么更改,应用程序都会自然地运行AcmeDemoBundle(默认情况下(。简单地说,我不知道如何告诉Symfony2运行我的捆绑包而不是演示捆绑包。

您必须将HTTP请求路由到您的新控制器:

/**
 * @Route("/hello/{name}", name="_demo_hello")
 * @Template()
 */
public function newHelloAction($name)
{
    return array('name' => $name);
}

src/Acme/DemoBundle/Controller/DemoController.php中的这段代码告诉Symfony,每当收到/hello/whatevery时,都要执行helloAction函数。

试着在你的新控制器上写以下函数:

/**
 * @Route("/new/hello/{name}", name="new_demo_hello")
 * @Template()
 */
public function helloAction($name)
{
    return array('name' => $name);
}

然后转到浏览器中的/new/hello/something

关键是路由组件,在食谱中看看它,你会发现它很容易——你知道了基本概念。

您应该尝试这样做来正确删除acme捆绑包:

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