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(語言翻譯):實現多語言的功能
歡迎關注本站公眾號,獲取更多信息