Symfony2开发之控制器用法实例分析


Posted in PHP onFebruary 05, 2016

本文实例分析了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博客 ,转载时请注明出处及相应链接。

希望本文所述对大家基于Symfony框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP下利用header()函数设置浏览器缓存的代码
Sep 01 PHP
发款php蜘蛛统计插件只要有mysql就可用
Oct 12 PHP
PHPUnit PHP测试框架安装方法
Mar 23 PHP
完美解决:Apache启动问题―(OS 10022)提供了一个无效的参数
Jun 08 PHP
解析php中用PHPMailer来发送邮件的示例(126.com的例子)
Jun 24 PHP
php获取qq用户昵称和在线状态(实例分析)
Oct 27 PHP
Chrome Web App开发小结
Sep 04 PHP
iOS+PHP注册登录系统 PHP部分(上)
Dec 26 PHP
PHP中检索字符串的方法分析【strstr与substr_count方法】
Feb 17 PHP
PHP APP微信提现接口代码
Sep 30 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
Feb 22 PHP
php7 参数、整形及字符串处理机制修改实例分析
May 25 PHP
Symfony2实现在doctrine中内置数据的方法
Feb 05 #PHP
PHP MYSQL实现登陆和模糊查询两大功能
Feb 05 #PHP
twig模板获取全局变量的方法
Feb 05 #PHP
twig里使用js变量的方法
Feb 05 #PHP
Symfony2安装第三方Bundles实例详解
Feb 04 #PHP
Symfony2使用第三方库Upload制作图片上传实例详解
Feb 04 #PHP
Symfony2在Nginx下的配置方法图文教程
Feb 04 #PHP
You might like
推荐文章系统(一)
2006/10/09 PHP
PHP XML操作类DOMDocument
2009/12/16 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
2013/06/24 PHP
php里array_work用法实例分析
2015/07/13 PHP
PHP实现接收二进制流转换成图片的方法
2017/01/10 PHP
Javascript图像处理思路及实现代码
2012/12/25 Javascript
js+html+css实现鼠标移动div实例
2013/01/30 Javascript
js实现模拟计算器退格键删除文字效果的方法
2015/05/07 Javascript
JavaScript使用RegExp进行正则匹配的方法
2015/07/11 Javascript
jquery的幻灯片图片切换效果代码分享
2015/09/07 Javascript
AngularJS入门教程之双向绑定详解
2016/08/18 Javascript
jQuery实现两列等高并自适应高度
2016/12/22 Javascript
jquery处理checkbox(复选框)是否被选中实例代码
2017/06/12 jQuery
jQuery基于cookie实现换肤功能实例
2017/10/14 jQuery
JavaScript中关于class的调用方法
2017/11/28 Javascript
vue中使用ueditor富文本编辑器
2018/02/08 Javascript
微信小程序实现团购或秒杀批量倒计时
2020/11/01 Javascript
浅谈针对Vue相同路由不同参数的刷新问题
2018/09/29 Javascript
[53:23]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
Python做文本按行去重的实现方法
2016/10/19 Python
Python向日志输出中添加上下文信息
2017/05/24 Python
python3.4实现邮件发送功能
2018/05/28 Python
使用python批量读取word文档并整理关键信息到excel表格的实例
2018/11/07 Python
Python实现打砖块小游戏代码实例
2019/05/18 Python
django实现类似触发器的功能
2019/11/15 Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
2020/03/12 Python
HTML5 LocalStorage 本地存储刷新值还在
2017/03/10 HTML / CSS
解析html5 canvas实现背景鼠标连线动态效果代码
2019/06/17 HTML / CSS
GUESS西班牙官方网上商城:美国服饰品牌
2017/03/15 全球购物
ECCO爱步加拿大官网:北欧丹麦鞋履及皮具品牌
2017/07/08 全球购物
社区学习十八大感想
2014/01/22 职场文书
大学旷课检讨书
2014/01/28 职场文书
毕业留言寄语大全
2014/04/10 职场文书
安全承诺书格式
2014/05/21 职场文书
小学生感恩老师演讲稿
2014/08/28 职场文书
2015秋季运动会通讯稿
2015/07/18 职场文书