Symfony2開發之控制器用法執行個體分析

來源:互聯網
上載者:User
本文執行個體分析了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教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.