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执行速度全攻略(上)
Oct 09 PHP
PHP实现定时生成HTML网站首页实例代码
Nov 20 PHP
php处理json时中文问题的解决方法
Apr 12 PHP
php数组函数序列之rsort() - 对数组的元素值进行降序排序
Nov 02 PHP
php实现快速排序的三种方法分享
Mar 12 PHP
ThinkPHP框架设计及扩展详解
Nov 25 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
Mar 27 PHP
分享五个PHP7性能优化提升技巧
Dec 07 PHP
php 如何设置一个严格控制过期时间的session
May 05 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
Apr 04 PHP
TP5框架页面跳转样式操作示例
Apr 05 PHP
基于php解决json_encode中文UNICODE转码问题
Nov 10 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中new static() 和 new self() 的区别介绍
2015/01/09 PHP
php+Ajax无刷新验证用户名操作实例详解
2019/03/04 PHP
javascript call方法使用说明
2010/01/11 Javascript
jQuery入门第一课 jQuery选择符
2010/03/14 Javascript
使用GruntJS链接与压缩多个JavaScript文件过程详解
2013/08/02 Javascript
原生js实现日期联动
2015/01/12 Javascript
AngularJS基础知识笔记之表格
2015/05/10 Javascript
AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】
2016/12/13 Javascript
微信小程序 122100版本更新问题解决方案
2016/12/22 Javascript
原生JS实现Ajax跨域请求flask响应内容
2017/10/24 Javascript
vue2.0安装style/css loader的方法
2018/03/14 Javascript
详解vue中的父子传值双向绑定及数据更新问题
2019/06/13 Javascript
防止Layui form表单重复提交的实现方法
2019/09/10 Javascript
用云开发Cloudbase实现小程序多图片内容安全监测的代码详解
2020/06/07 Javascript
python实现爬虫下载漫画示例
2014/02/16 Python
Python爬取附近餐馆信息代码示例
2017/12/09 Python
Face++ API实现手势识别系统设计
2018/11/21 Python
Python3实现取图片中特定的像素替换指定的颜色示例
2019/01/24 Python
python global关键字的用法详解
2019/09/05 Python
CSS3截取字符串实例代码【推荐】
2018/06/07 HTML / CSS
叙述DBMS对数据控制功能有哪些
2016/06/12 面试题
客房主管岗位职责
2013/12/09 职场文书
党章学习思想汇报
2014/01/14 职场文书
节约电力资源的建议书
2014/03/12 职场文书
团代会主持词
2014/04/02 职场文书
秋天的图画教学反思
2014/05/01 职场文书
电子信息工程专业求职信
2014/06/28 职场文书
软件测试专业推荐信
2014/09/18 职场文书
违章停车检讨书
2014/10/21 职场文书
预备党员个人总结
2015/02/14 职场文书
2015年环境监察工作总结
2015/07/23 职场文书
大学生先进个人主要事迹材料
2015/11/04 职场文书
如何给HttpServletRequest增加消息头
2021/06/30 Java/Android
CSS使用伪类控制边框长度的方法
2022/01/18 HTML / CSS
电脑只能进入安全模式无法正常启动的解决办法
2022/04/08 数码科技