控制器
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 2.3,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
控制器
控制器是您创建的PHP可调用对象,它从HTTP请求中获取信息,并创建并返回HTTP响应(作为Symfony)ob娱乐下载响应
对象)。响应可以是一个HTML页面、一个XML文档、一个序列化的JSON数组、一个图像、一个重定向、一个404错误或任何你能想到的东西。控制器包含任意逻辑您的应用程序需要呈现页面的内容。
通过观察实际运行中的Symfony控制器,可以了解这有多简单。ob娱乐下载这将呈现一个打印名人的页面你好世界!
:
1 2 3 4 5 6
使用ob娱乐下载\组件\HttpFoundation\响应;公共函数helloAction(){返回新响应(“Hello world !”);}
控制器的目标总是相同的:创建并返回一个对象响应
对象。在此过程中,它可能从请求中读取信息、加载数据库资源、发送电子邮件或设置用户会话的信息。但在所有情况下,控制器最终都会返回响应
将被传递回客户端的对象。
没有魔法,也没有其他需要担心的要求!下面是一些常见的例子:
- 控制器的一个准备一个
响应
对象,表示网站主页的内容。 - 控制器B读取
{蛞蝓}
请求中的占位符,以便从数据库加载博客条目并创建响应
对象显示该博客。如果{蛞蝓}
在数据库中找不到,它创建并返回一个响应
对象,其状态代码为404。 - 控制器C处理联系人表单的表单提交。它从请求中读取表单信息,将联系信息保存到数据库中,并将联系信息通过电子邮件发送给您。最后,它创建一个
响应
对象,该对象将客户端的浏览器重定向到联系表单的“谢谢”页面。
请求,控制器,响应生命周期
Symfony项目处理的每个请求都要经历相同的简单生命ob娱乐下载周期。框架处理了所有重复的事情:你只需要在控制器函数中编写自定义代码:
- 每个请求执行一个单独的前端控制器文件(例如。
app.php
在生产或app_dev.php
在开发时)引导应用程序; - 前端控制器的唯一工作是初始化Symfony的引擎(称为ob娱乐下载
内核
)并传递给它一个请求
要处理的对象; - Symfob娱乐下载ony核心要求路由器检查请求;
- 路由器将传入的URL匹配到一个特定的路由,并返回关于路由的信息,包括应该执行的控制器;
- 从匹配的路由执行正确的控制器,控制器内的代码创建并返回适当的
响应
对象; - 的HTTP标头和内容
响应
对象被发送回客户端。
创建一个页面就像创建一个控制器(#5)和创建一个将URL映射到该控制器的路由(#4)一样简单。
请注意
虽然名称相似,但“前端控制器”不同于本章中讨论的“控制器”PHP函数。前端控制器是一个短小的PHP文件,它位于您的web /
所有请求都通过该目录进行定向。典型的应用程序将有一个生产前端控制器(例如。app.php
)和开发前端控制器(例如:app_dev.php
).您可能永远不需要编辑、查看或担心应用程序中的前端控制器。“控制器类”是将几个“控制器”(也称为动作)分组在一个类中的一种方便方法(例如:updateAction ()
,deleteAction ()
等等)。控制器是控制器类中的一个方法。它们保存您的代码,用于创建和返回适当的响应
对象。
一个简单的控制器
而控制器可以是任何PHP可调用的(函数、对象上的方法或对象)关闭
),控制器通常是控制器类中的一个方法:
12 3 4 5 6 7 8 9 10 11 12
/ / src / AppBundle /控制器/ HelloController.php名称空间AppBundle\控制器;使用ob娱乐下载\组件\HttpFoundation\响应;类HelloController{公共函数indexAction($的名字){返回新响应(身体的< html > < >你好”.$的名字.”!