Symfony2開發(fā)之控制器用法實例分析
本文實例分析了Symfony2開發(fā)之控制器用法。分享給大家供大家參考,具體如下:
控制器是PHP函數(shù),通過它,你可以根據(jù)HTTP請求創(chuàng)建任務(wù)信息,并且構(gòu)建和返回HTTP響應(yīng)。響應(yīng)可以是HTML頁面、XML文檔、序列化的JSON數(shù)組、圖片、重定向、404錯誤甚至是你可以想到的一切??刂破髦邪四銘?yīng)用程序需要創(chuàng)建響應(yīng)的抽象邏輯。
接收請求,返回響應(yīng)的基本生命周期
1、每個請求都被單個前端控制器(如app.php或index.php)文件處理,前端控制器負責引導(dǎo)框架;
2、路由查看并匹配請求信息,并將其指向一個特定的路由,該路由決定調(diào)用哪個控制器;
3、執(zhí)行控制器,控制器中的代碼將創(chuàng)建并返回一個Response對象;
4、HTTP頭和Response對象的內(nèi)容將發(fā)回客戶端。
雖然名稱相似,但前端控制器與我們在本章節(jié)所說的控制器是不同的,前端控制器是你web目錄中的一個PHP小文件,所有的請求都直接經(jīng)過它。一個典型的應(yīng)用程序?qū)⒂幸粋€用于生產(chǎn)的前端控制器(如app.php)和一個用于開發(fā)的前端控制器(如app_dev.php)。你可以永遠不需要對前端控制器進行編輯、查看和擔心。
編寫一個簡單的控制器
前面一篇《Symfony學(xué)習十分鐘入門經(jīng)典教程》已經(jīng)說了如何創(chuàng)建Bundle現(xiàn)在直接說怎樣添加控制器??刂破魇莍nfoAction方法,它隸屬于一個控制器類(UserController)。不要對名稱感到困惑:控制器類只是簡單將幾個控制器集中在一起的。通常情況下,控制器類將放置多個控制器(如updateAction、deleteAction等)。
//Symfony2充分利用了PHP5.3的名稱空間的功能去為整個控制器類命名空間 namespace ZM\ApiBundle\Controller; //use關(guān)鍵字導(dǎo)入類,是控制器必須返回的 //出于方便的考慮,Symfony2提供了一個Controller基類,以幫助實現(xiàn)常用的一些控制器任務(wù),你的控制器類能夠訪問所需的資源。通過繼承該類,你可以利用其中的一些方法。 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)); //控制器創(chuàng)建并返回一個Response對象 return new Response(json_encode($result), '200', array('Content-Type' => 'application/json')); } }
本文永久地址:http://blog.it985.com/5916.html
本文出自 IT985博客 ,轉(zhuǎn)載時請注明出處及相應(yīng)鏈接。
更多關(guān)于PHP框架相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php優(yōu)秀開發(fā)框架總結(jié)》,《codeigniter入門教程》,《CI(CodeIgniter)框架進階教程》,《Yii框架入門及常用技巧總結(jié)》及《ThinkPHP入門教程》
希望本文所述對大家基于Symfony框架的PHP程序設(shè)計有所幫助。
- Symfony2使用Doctrine進行數(shù)據(jù)庫查詢方法實例總結(jié)
- Symfony2實現(xiàn)從數(shù)據(jù)庫獲取數(shù)據(jù)的方法小結(jié)
- Symfony2創(chuàng)建頁面實例詳解
- Symfony2之session與cookie用法小結(jié)
- Symfony2框架學(xué)習筆記之表單用法詳解
- Symfony2框架創(chuàng)建項目與模板設(shè)置實例詳解
- Symfony2學(xué)習筆記之插件格式分析
- Symfony2學(xué)習筆記之系統(tǒng)路由詳解
- Symfony2學(xué)習筆記之控制器用法詳解
- Symfony2學(xué)習筆記之模板用法詳解
- Symfony2安裝第三方Bundles實例詳解
- Symfony2使用第三方庫Upload制作圖片上傳實例詳解
- Symfony2聯(lián)合查詢實現(xiàn)方法
相關(guān)文章
ThinkPHP3.1新特性之Action參數(shù)綁定
ThinkPHP3.1版的Action參數(shù)綁定功能提供了URL變量和操作方法的參數(shù)綁定支持,這一功能可以使得你的操作方法定義和參數(shù)獲取更加清晰,也便于跨模塊調(diào)用操作方法,需要的朋友可以參考下2014-06-06