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 相关文章推荐
桌面中心(一)创建数据库
Oct 09 PHP
php 文章采集正则代码
Dec 28 PHP
一步一步学习PHP(1) php开发环境配置
Feb 15 PHP
php模块memcache和memcached区别分析
Jun 14 PHP
php创建多级目录的方法
Mar 24 PHP
Yii中创建自己的Widget实例
Jan 05 PHP
php单链表实现代码分享
Jul 04 PHP
PHP中FTP相关函数小结
Jul 15 PHP
PHP 断点续传实例详解
Nov 11 PHP
PHP实现动态删除XML数据的方法示例
Mar 30 PHP
laravel Validator ajax返回错误信息的方法
Sep 29 PHP
TP5框架页面跳转样式操作示例
Apr 05 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
一个MYSQL操作类
2006/11/16 PHP
PHP 根据IP地址控制访问的代码
2010/04/22 PHP
PHP使用正则表达式获取微博中的话题和对象名
2015/07/18 PHP
CI框架数据库查询之join用法分析
2016/05/18 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
2016/06/13 PHP
JS实现很酷的水波文字特效实例
2015/02/26 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
2016/12/08 Javascript
完美的js图片轮换效果
2017/02/05 Javascript
Bootstrap下拉菜单样式
2017/02/07 Javascript
Windows下快速搭建NodeJS本地服务器的步骤
2017/08/09 NodeJs
bootstrap-table组合表头的实现方法
2017/09/07 Javascript
Vue-cli配置打包文件本地使用的教程图解
2018/08/02 Javascript
详解如何在Vue里建立长按指令
2018/08/20 Javascript
解决vue项目使用font-awesome,build后路径的问题
2018/09/01 Javascript
vue input输入框关键字筛选检索列表数据展示
2020/10/26 Javascript
JS表格的动态操作完整示例
2020/01/13 Javascript
vue计算属性+vue中class与style绑定(推荐)
2020/03/30 Javascript
vue-cli3配置favicon.ico和title的流程
2020/10/27 Javascript
Python排序算法实例代码
2017/08/10 Python
python实现百度语音识别api
2018/04/10 Python
Python闭包函数定义与用法分析
2018/07/20 Python
python微信好友数据分析详解
2018/11/19 Python
Python 从相对路径下import的方法
2018/12/04 Python
django自带的权限管理Permission用法说明
2020/05/13 Python
django日志默认打印request请求信息的方法示例
2020/05/17 Python
button在IE6/7下的黑边去除方案
2012/12/24 HTML / CSS
CSS3中Animation属性的使用详解
2015/08/06 HTML / CSS
纯CSS3实现运行时钟的示例代码
2021/01/25 HTML / CSS
详解淘宝H5 sign加密算法
2020/08/25 HTML / CSS
工商企业管理实习自我鉴定
2013/12/04 职场文书
小学生班会演讲稿
2014/01/09 职场文书
升旗仪式演讲稿
2014/05/08 职场文书
酒店前台接待岗位职责
2015/04/02 职场文书
2015年乡镇纪检工作总结
2015/04/22 职场文书
2015年高三教学工作总结
2015/07/21 职场文书
Java处理延时任务的常用几种解决方案
2022/06/01 Java/Android