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 相关文章推荐
BBS(php & mysql)完整版(一)
Oct 09 PHP
PHP Header用于页面跳转要注意的几个问题总结
Oct 03 PHP
不要轻信 PHP_SELF的安全问题
Sep 05 PHP
apache+php完美解决301重定向的两种方法
Jun 08 PHP
linux环境apache多端口配置虚拟主机的方法深入介绍
Jun 09 PHP
PHP使用array_merge重新排列数组下标的方法
Jul 22 PHP
PHP封装CURL扩展类实例
Jul 28 PHP
WordPress中的shortcode短代码功能使用详解
May 17 PHP
可兼容php5与php7的cURL文件上传功能实例分析
May 11 PHP
为Plesk PHP7启用Oracle OCI8扩展方法总结
Mar 29 PHP
Yii2.0框架模型多表关联查询示例
Jul 18 PHP
php+laravel 扫码二维码签到功能
May 15 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中Static(静态)关键字功能与用法实例分析
2019/04/05 PHP
Gambit vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
DIV外区域Click后关闭DIV的实现代码
2011/12/21 Javascript
jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)
2013/02/04 Javascript
jQuery实现瀑布流布局
2014/12/12 Javascript
轻松创建nodejs服务器(9):实现非阻塞操作
2014/12/18 NodeJs
JQuery判断radio(单选框)是否选中和获取选中值方法总结
2015/04/15 Javascript
JavaScript实现的圆形浮动标签云效果实例
2015/08/06 Javascript
微信企业号开发之微信考勤百度地图定位
2015/09/11 Javascript
vue.js国际化 vue-i18n插件的使用详解
2017/07/07 Javascript
webpack写jquery插件的环境配置
2017/12/21 jQuery
vue使用 better-scroll的参数和方法详解
2018/01/25 Javascript
详解Angular如何正确的操作DOM
2018/07/06 Javascript
详解angular2如何手动点击特定元素上的点击事件
2018/10/16 Javascript
新手快速入门JavaScript装饰者模式与AOP
2019/06/24 Javascript
[01:26]神话结束了,却也刚刚开始——DOTA2新英雄玛尔斯驾临战场
2019/03/10 DOTA
python爬虫爬取网页表格数据
2018/03/07 Python
PyQt5实现简易电子词典
2019/06/25 Python
详解pandas中MultiIndex和对象实际索引不一致问题
2019/07/23 Python
numpy:np.newaxis 实现将行向量转换成列向量
2019/11/30 Python
详解Python 实现 ZeroMQ 的三种基本工作模式
2020/03/24 Python
virtualenv介绍及简明教程
2020/06/23 Python
Steiff台湾官网:德国金耳釦泰迪熊
2019/12/26 全球购物
大家访活动实施方案
2014/03/10 职场文书
田径运动会开幕式及主持词
2014/03/28 职场文书
大学生活自我评价
2014/04/09 职场文书
新书发布会策划方案
2014/06/09 职场文书
中职生求职信
2014/07/01 职场文书
教师正风肃纪剖析材料
2014/10/20 职场文书
学校拾金不昧表扬信
2015/01/16 职场文书
小学工作总结2015
2015/05/04 职场文书
《分数乘法》教学反思
2016/02/24 职场文书
职场中的你,辞职信写对了吗?
2019/06/26 职场文书
redis三种高可用方式部署的实现
2021/05/11 Redis
各种货币符号快捷输入
2022/02/17 杂记