Symfony2框架的工作原理

從Requests(請求)鏈接開始,根據 不同的請求調用前臺的controller(控制器),由controller調用系統核心功能對請求的URI資源進行Routing(路由)解析,再根 據解析的結果調用不同action函數,生成Responses(響應數據)并返回。
其中,不同的鏈接都對應不同的controller,系統是如何判斷的呢?
不同的鏈接就必須在app/config/routing.yml文件中進行配置,例如要添加/contact鏈接(通過index.php/contact訪問),配置如下:
contact:
path: /contact
defaults: { _controller: AcmeDemoBundle:Main:contact }
該配置的意思是當用戶請求index.php/contact,路由系統根據配置執行MainController類的contactAction函數
MainController類部署如下:
//src/Acme/DemoBundle/Controller/MainController.php
use Symfony\Component\HttpFoundation\Response;
class MainController
{
public function contactAction()
{
//do something 實現功能,這里返回一個帶h1標簽的"Contact us!"輸出
return new Response('<h1>Contact us!</h1>');
}}
標準組件
Symfony框架允許我們自由地創建自己的應用程序,并且大量的內置工具來協助完成各種各樣的任務(如持久化數據庫,渲染視圖,發送郵件,處理提交數據,驗證用戶輸入,安全處理)
Symfony本身包含超過了20個核心的相對獨立組件,每個組件實現不同的功能:
HttpFoundation(HTTP處理):其中包含request類和response類,主要處理HTTP的請求和響應;session處理;Cookie處理;上傳文件等
Routing(路由處理):解析URI資源,根據分析的結果執行操作
HttpFoundation(HTTP處理):,其中包含request類和response類,主要處理HTTP的請求和響應;session處理;Cookie處理;上傳文件等
Form(表單處理):Symfony提供Forms組件幫助我們快速創建表單,以及處理表單提交的任務
Validator(HTTP處理):定義驗證規則,驗證用戶提交的數據
ClassLoader(類加載):自動加載,讓開發者不通過require方式包含文件即可調用指定的類
Templating(模板):可將獲取的數據渲染到html模板中,實現邏輯與展示分離
Security(處理安全性問題)
Translation(語言翻譯):實現多語言的功能
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!