【发布时间】:2012-03-13 18:46:14
【问题描述】:
我开始使用 Symfony 2 并且正在关注 this 教程。现在,本教程很简单,我能够完全按照它进行操作。这是我的控制器中的代码
<?php
namespace DemoCompany\HelloBundle\Controller;
use Symfony\Component\HttpFoundation\Response;
class HelloController{
public function indexAction($name){
return new Response('<h1>hello ' . ucfirst($name) . '</h1>');
}
}
现在,我有一些问题
当我在不包含
namespace DemoCompany\HelloBundle\Controller;的情况下运行代码时,它给了我一个错误。但是当包含这条线时它确实可以正常工作;所以我想知道:为什么它与命名空间语句一起使用以及为什么它在没有命名空间的情况下不起作用。请澄清。后续问题:我正在返回一个新的
Response对象,但它既没有被定义,我的类HelloController也没有扩展一些基类(可能定义了这个响应对象)。所以问题是:PHP 是如何找到并加载这个文件的?在 Symfony 中,自定义控制器/模型/视图是否需要扩展一些基类?例如,在 Codeigniter 中,我们必须执行
class Blog extends CI_Controller之类的操作,以便 CI_Controller 中定义的所有方法都可以使用$this在当前范围内使用。 Symfony 有相同的做法还是做了不同的事情?既然这个控制器的命名空间是
DemoCompany\HelloBundle\Controller,那么普通的PHP函数如何在没有反斜杠的情况下工作?
【问题讨论】:
标签: php symfony namespaces