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脚本的10个技巧(5)
Oct 09 PHP
php报表之jpgraph柱状图实例代码
Aug 22 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
Jan 23 PHP
PHP常用特殊运算符号和函数总结(php新手入门必看)
Feb 02 PHP
PHP中echo和print的区别
Aug 28 PHP
php采用ajax数据提交post与post常见方法总结
Nov 10 PHP
php+ajax实现的点击浏览量加1
Apr 16 PHP
php日期操作技巧小结
Jun 25 PHP
PHP中in_array函数使用的问题与解决办法
Sep 11 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
Dec 21 PHP
php实现生成带二维码图片并强制下载功能
Feb 24 PHP
浅谈PHP进程管理
Mar 08 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
Drupal7中常用的数据库操作实例
2014/03/02 PHP
php绘图中显示不出图片的原因及解决
2014/03/05 PHP
PHP中大括号'{}'用法实例总结
2017/02/08 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
js异或加解密效果代码
2008/06/25 Javascript
javascript中call,apply,bind的用法对比分析
2015/02/12 Javascript
JavaScript取得WEB安全颜色列表的方法
2015/07/14 Javascript
基于jQuery实现左右图片轮播(原理通用)
2015/12/24 Javascript
Bootstrap模态框(modal)垂直居中的实例代码
2016/08/18 Javascript
AngularJs Understanding the Controller Component
2016/09/02 Javascript
详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
2017/03/08 Javascript
Js实现中国公民身份证号码有效性验证实例代码
2017/05/03 Javascript
jQuery查找dom的几种方法效率详解
2017/05/17 jQuery
在vue项目中引入highcharts图表的方法(详解)
2018/03/05 Javascript
vue实现打印功能的两种方法
2018/09/07 Javascript
微信小程序日历弹窗选择器代码实例
2019/05/09 Javascript
python发布模块的步骤分享
2014/02/21 Python
python检测某个变量是否有定义的方法
2015/05/20 Python
Python实现快速排序和插入排序算法及自定义排序的示例
2016/02/16 Python
python使用mysql数据库示例代码
2017/05/21 Python
Python设计模式之工厂模式简单示例
2018/01/09 Python
python PyTorch参数初始化和Finetune
2018/02/11 Python
python创建属于自己的单词词库 便于背单词
2019/07/30 Python
python实现京东订单推送到测试环境,提供便利操作示例
2019/08/09 Python
Python使用循环神经网络解决文本分类问题的方法详解
2020/01/16 Python
Python HTMLTestRunner库安装过程解析
2020/05/25 Python
pycharm实现print输出保存到txt文件
2020/06/01 Python
PyQt5的QWebEngineView使用示例
2020/10/20 Python
HTML5移动端开发中的Viewport标签及相关CSS用法解析
2016/04/15 HTML / CSS
关于HTML5语义标签的实践(blog页面)
2016/07/12 HTML / CSS
购买瑞典当代设计的腕表和太阳眼镜:TRIWA
2016/10/30 全球购物
四年级语文教学反思
2014/02/05 职场文书
创先争优一句话承诺
2014/05/29 职场文书
小学教育见习报告
2014/10/31 职场文书
2015年政务公开工作总结
2015/05/19 职场文书
使用HTML+Css+transform实现3D导航栏的示例代码
2021/03/31 HTML / CSS