当前位置:首页 > CMS教程 > 其它CMS > 列表

Symfony2开发之控制器用法实例分析

发布:smiling 来源: PHP粉丝网  添加日期:2021-07-09 11:23:07 浏览: 评论:0 

本文实例分析了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等)。

  1. //Symfony2充分利用了PHP5.3的名称空间的功能去为整个控制器类命名空间 
  2. namespace ZM\ApiBundle\Controller; 
  3. //use关键字导入类,是控制器必须返回的 
  4. //出于方便的考虑,Symfony2提供了一个Controller基类,以帮助实现常用的一些控制器任务,你的控制器类能够访问所需的资源。通过继承该类,你可以利用其中的一些方法。 
  5. use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
  6. use Symfony\Component\HttpFoundation\Response; 
  7. use Symfony\Component\HttpFoundation\Request; 
  8. class UserController extends Controller { 
  9.   /** 
  10.    * 用户个人中心查看 
  11.    * @return Response 
  12.    */ 
  13.   public function infoAction() { 
  14.     $conn = $this->getDoctrine()->getConnection(); 
  15.     $request = Request::createFromGlobals()->request; 
  16.     $phone = $request->get('phone'); 
  17.     $result = $conn->fetchAssoc("SELECT * FROM user WHERE phone = ? LIMIT 1"array($phone)); 
  18.     //控制器创建并返回一个Response对象 
  19.     return new Response(json_encode($result), '200'array('Content-Type' => 'application/json')); 
  20.   } 
  21. }

Tags: Symfony2控制器

分享到: