本文實例分析了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博客 ,轉載時請註明出處及相應鏈接。
更多關於PHP框架相關內容有興趣的讀者可查看本站專題:《php優秀開發框架總結》,《codeigniter入門教程》,《CI(CodeIgniter)框架進階教程》,《Yii框架入門及常用技巧總結》及《ThinkPHP入門教學》
希望本文所述對大家以Symfony框架為基礎的PHP程式設計有所幫助。
以上就介紹了Symfony2開發之控制器用法實例分析,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。