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 相关文章推荐
wordpress之wp-settings.php
Aug 17 PHP
php中对2个数组相加的函数
Jun 24 PHP
php过滤html中的其他网站链接的方法(域名白名单功能)
Apr 24 PHP
php中动态调用函数的方法
Mar 16 PHP
详解WordPress中过滤链接与过滤SQL语句的方法
Dec 18 PHP
thinkPHP实现MemCache分布式缓存功能
Mar 23 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
Sep 23 PHP
PHP中的正则表达式实例详解
Apr 25 PHP
Laravel用户授权系统的使用方法示例
Sep 16 PHP
如何解决PHP获取不到SESSION信息之一般情况
Oct 10 PHP
Laravel等框架模型关联的可用性浅析
Dec 15 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
Feb 06 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中DOMElement操作xml文档实例演示
2013/03/26 PHP
YII路径的用法总结
2014/07/09 PHP
php 根据自增id创建唯一编号类
2017/04/06 PHP
PHP SESSION机制的理解与实例
2019/03/22 PHP
laravel Validator ajax返回错误信息的方法
2019/09/29 PHP
javascript 实现键盘上下左右功能的小例子
2013/09/15 Javascript
javascript实现验证IP地址等相关信息代码
2015/05/10 Javascript
仿百度换肤功能的简单实例代码
2016/07/11 Javascript
基于BootStrap环境写jQuery tabs插件
2016/07/12 Javascript
深入探究AngularJs之$scope对象(作用域)
2017/07/20 Javascript
简单介绍react redux的中间件的使用
2018/04/06 Javascript
Vue.js实现开发购物车功能的方法详解
2019/02/22 Javascript
使用 vue 实现灭霸打响指英雄消失的效果附demo
2019/05/06 Javascript
layui监听工具栏的实例(操作列表按钮)
2019/09/10 Javascript
微信小程序定义和调用全局变量globalData的实现
2019/11/01 Javascript
[03:07]DOTA2英雄基础教程 冰霜诅咒极寒幽魂
2013/12/06 DOTA
[01:09:19]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第二场 2月28日
2021/03/11 DOTA
Python 正则表达式(转义问题)
2014/12/15 Python
python爬取NUS-WIDE数据库图片
2016/10/05 Python
python中import与from方法总结(推荐)
2019/03/21 Python
Flask框架工厂函数用法实例分析
2019/05/25 Python
python实现QQ批量登录功能
2019/06/19 Python
基于MATLAB和Python实现MFCC特征参数提取
2019/08/13 Python
pygame实现俄罗斯方块游戏(基础篇2)
2019/10/29 Python
将python安装信息加入注册表的示例
2019/11/20 Python
python模拟点击网页按钮实现方法
2020/02/25 Python
Python编程快速上手——Excel表格创建乘法表案例分析
2020/02/28 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
2020/04/26 Python
python Yaml、Json、Dict之间的转化
2020/10/19 Python
美国经典刺绣和字母儿童服装特卖:Smocked Auctions
2018/07/16 全球购物
美国最大的电子宠物训练产品制造商:PetSafe
2018/10/12 全球购物
逃课上网检讨书
2014/02/20 职场文书
医学专业毕业生推荐信
2014/07/12 职场文书
人力资源职位说明书
2014/07/29 职场文书
公证委托书格式
2014/09/13 职场文书
2015年依法治校工作总结
2015/07/27 职场文书