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 相关文章推荐
图书管理程序(一)
Oct 09 PHP
php smarty截取中文字符乱码问题?gb2312/utf-8
Nov 07 PHP
用php制作简单分页(从数据库读取记录)的方法详解
May 04 PHP
PHP添加Xdebug扩展的方法
Feb 12 PHP
在Windows XP下安装Apache+MySQL+PHP环境
Feb 22 PHP
php实现模拟登陆方正教务系统抓取课表
May 19 PHP
PHP中常用的数组操作方法笔记整理
May 16 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
Aug 21 PHP
PHP搭建大文件切割分块上传功能示例
Jan 04 PHP
php 访问oracle 存储过程实例详解
Jan 08 PHP
php获取手机端的号码以及ip地址实例代码
Sep 12 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
May 29 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
PHP 时间日期操作实战
2011/08/26 PHP
php常用Stream函数集介绍
2013/06/24 PHP
PHP实现根据图片色界在不同位置加水印的方法
2015/08/08 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
form中限制文本字节数js代码
2007/06/10 Javascript
javascript下IE与FF兼容函数收集
2008/09/17 Javascript
javascript学习笔记(二)数组和对象部分
2014/09/30 Javascript
JavaScript弹出新窗口并控制窗口移动到指定位置的方法
2015/04/06 Javascript
在JavaScript中如何解决用execCommand(
2015/10/19 Javascript
javascript类型系统 Array对象学习笔记
2016/01/09 Javascript
详解Angularjs filter过滤器
2016/02/06 Javascript
JavaScript编写页面半透明遮罩效果的简单示例
2016/05/09 Javascript
onmouseover事件和onmouseout事件全面理解
2016/08/15 Javascript
Javascript动画效果(1)
2016/10/11 Javascript
Vue.js第二天学习笔记(vue-router)
2016/12/01 Javascript
浅析 NodeJs 的几种文件路径
2017/06/07 NodeJs
js截取字符串功能的实现方法
2017/09/27 Javascript
Angular项目从新建、打包到nginx部署全过程记录
2017/12/09 Javascript
Vue中android4.4不兼容问题的解决方法
2018/09/04 Javascript
微信小程序中转义字符的处理方法
2019/03/28 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
2020/09/22 Javascript
python实现的DES加密算法和3DES加密算法实例
2015/06/03 Python
解决python中使用plot画图,图不显示的问题
2018/07/04 Python
详解python里的命名规范
2018/07/16 Python
python3安装speech语音模块的方法
2018/12/24 Python
python正则爬取某段子网站前20页段子(request库)过程解析
2019/08/10 Python
用python批量移动文件
2021/01/14 Python
css3加js做一个简单的3D行星运转效果实例代码
2017/01/18 HTML / CSS
教育专业自荐书范文
2013/12/17 职场文书
乡镇办公室工作决心书
2014/03/11 职场文书
合作意向书模板
2014/03/31 职场文书
乳制品整治工作方案
2014/05/29 职场文书
乡镇爱国卫生月活动总结
2014/06/25 职场文书
民间借贷借条如何写
2015/05/26 职场文书
2016年安全月活动总结
2016/04/06 职场文书
python实现股票历史数据可视化分析案例
2021/06/10 Python