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 smarty 二级分类代码和模版循环例子
Jun 16 PHP
PHP安全配置详细说明
Sep 26 PHP
ThinkPHP利用PHPMailer实现邮件发送实现代码
Sep 26 PHP
php遍历目录输出目录及其下的所有文件示例
Jan 27 PHP
PHP内核探索:变量概述
Jan 30 PHP
php中字符串和正则表达式详解
Oct 23 PHP
PHP互换两个变量值的方法(不用第三变量)
Nov 14 PHP
thinkPHP简单调用函数与类库的方法
Mar 15 PHP
Yii 2.0自带的验证码使用经验分享
Jun 19 PHP
PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法
Sep 13 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
Feb 07 PHP
PHP命名空间(namespace)原理与用法详解
Dec 11 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 mkdir()定义和用法
2009/01/14 PHP
php用户登录之cookie信息安全分析
2016/05/13 PHP
js用图作提交按钮或超连接
2008/03/26 Javascript
jQuery extend()详解及简单实例
2017/05/06 jQuery
JS中Object对象的原型概念基础
2018/01/29 Javascript
React 组件间的通信示例
2018/06/14 Javascript
javascript使用正则实现去掉字符串前面的所有0
2018/07/23 Javascript
JS中判断字符串存在和非空的方法
2018/09/12 Javascript
Vue实现简易翻页效果源码分享
2018/11/08 Javascript
Python获取服务器信息的最简单实现方法
2015/03/05 Python
使用基于Python的Tornado框架的HTTP客户端的教程
2015/04/24 Python
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
2018/04/24 Python
python使用matplotlib画饼状图
2018/09/25 Python
在python带权重的列表中随机取值的方法
2019/01/23 Python
基于wxPython的GUI实现输入对话框(1)
2019/02/27 Python
Pyqt5如何让QMessageBox按钮显示中文示例代码
2019/04/11 Python
python tkinter实现界面切换的示例代码
2019/06/14 Python
django框架实现模板中获取request 的各种信息示例
2019/07/01 Python
Django REST framework内置路由用法
2019/07/26 Python
Django密码存储策略分析
2020/01/09 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
2020/02/13 Python
python实现扫雷游戏
2020/03/03 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
2020/05/23 Python
python 基于Apscheduler实现定时任务
2020/12/15 Python
python实现发送QQ邮件(可加附件)
2020/12/23 Python
奥斯汀独木舟和皮划艇:Austin Canoe & Kayak
2018/05/22 全球购物
卫校护理专业毕业生求职信
2013/11/26 职场文书
岗位说明书范文
2014/05/07 职场文书
幼儿园优秀班主任事迹材料
2014/05/14 职场文书
单位法定代表人授权委托书
2014/09/20 职场文书
学生偷窃检讨书
2014/09/25 职场文书
小学生差生评语
2014/12/29 职场文书
销售内勤岗位职责范本
2015/04/13 职场文书
2015年党员公开承诺事项
2015/04/27 职场文书
CSS3实现的侧滑菜单
2021/04/27 HTML / CSS
Python可视化神器pyecharts之绘制箱形图
2022/07/07 Python