Symfony2新捆绑

时间:2013-11-04 09:11:47

标签: php symfony frameworks

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

问题在于:每当我运行我的应用程序(localhost / app_dev.php / hello / whatever)时,浏览器都会打印“hello whatever”。我知道此消息来自AcmeDemoBundle(Symfony2归档附带的捆绑包)。无论我对EXP / HelloController.php做出什么改变,该应用程序自然会运行AcmeDemoBundle(默认情况下)。 简单地说,我不知道如何告诉Symfony2运行我的包而不是演示包。

2 个答案:

答案 0 :(得分:1)

你应该试试这个以正确删除acme包:

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

答案 1 :(得分:1)

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

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

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

尝试在新控制器中编写以下功能:

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

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

关键是路由组件,在食谱中查看它,你会发现很容易获得基本概念。