Symfony2开发之控制器用法实例分析
本文实例分析了symfony2开发之控制器用法。分享给大家供大家参考,具体如下:
控制器是php函数,通过它,你可以根据http请求创建任务信息,并且构建和返回http响应。响应可以是html页面、xml文档、序列化的json数组、图片、重定向、404错误甚至是你可以想到的一切。控制器中包含了你应用程序需要创建响应的抽象逻辑。
接收请求,返回响应的基本生命周期
1、每个请求都被单个前端控制器(如app.php或index.php)文件处理,前端控制器负责引导框架;
2、路由查看并匹配请求信息,并将其指向一个特定的路由,该路由决定调用哪个控制器;
3、执行控制器,控制器中的代码将创建并返回一个response对象;
4、http头和response对象的内容将发回客户端。
虽然名称相似,但前端控制器与我们在本章节所说的控制器是不同的,前端控制器是你web目录中的一个php小文件,所有的请求都直接经过它。一个典型的应用程序将有一个用于生产的前端控制器(如app.php)和一个用于开发的前端控制器(如app_dev.php)。你可以永远不需要对前端控制器进行编辑、查看和担心。
编写一个简单的控制器
前面一篇《symfony学习十分钟入门经典教程》已经说了如何创建bundle现在直接说怎样添加控制器。控制器是infoaction方法,它隶属于一个控制器类(usercontroller)。不要对名称感到困惑:控制器类只是简单将几个控制器集中在一起的。通常情况下,控制器类将放置多个控制器(如updateaction、deleteaction等)。
//symfony2充分利用了php5.3的名称空间的功能去为整个控制器类命名空间 namespace zm\apibundle\controller; //use关键字导入类,是控制器必须返回的 //出于方便的考虑,symfony2提供了一个controller基类,以帮助实现常用的一些控制器任务,你的控制器类能够访问所需的资源。通过继承该类,你可以利用其中的一些方法。 use symfony\bundle\frameworkbundle\controller\controller; use symfony\component\httpfoundation\response; use symfony\component\httpfoundation\request; class usercontroller extends controller { /** * 用户个人中心查看 * @return response */ public function infoaction() { $conn = $this->getdoctrine()->getconnection(); $request = request::createfromglobals()->request; $phone = $request->get('phone'); $result = $conn->fetchassoc("select * from user where phone = ? limit 1", array($phone)); //控制器创建并返回一个response对象 return new response(json_encode($result), '200', array('content-type' => 'application/json')); } }
本文永久地址:http://blog.it985.com/5916.html
本文出自 it985博客 ,转载时请注明出处及相应链接。
更多关于php框架相关内容感兴趣的读者可查看本站专题:《php优秀开发框架总结》,《codeigniter入门教程》,《ci(codeigniter)框架进阶教程》,《yii框架入门及常用技巧总结》及《thinkphp入门教程》
希望本文所述对大家基于symfony框架的php程序设计有所帮助。
上一篇: Hbase系统架构简述