我是symfony2的新手。我開始使用一些教程,然後開始構建SYMBLOG。我已經瞭解它,我可以添加或更改功能。我在工作流中有點混亂,我的意思是這些文件如何一起工作來渲染頁面或產生輸出。任何人都可以從symfony2開始詳細解釋這個流程是如何發生的。從用戶請求開始,用戶輸入一個url直到symfony2顯示結果。請在流程中包含routing.yml。 ?Symfony2的工作流程?
回答
你應該看看這個鏈接。 Symfony - the big picture
它詳細解釋了從瀏覽器輸入URL到獲得渲染頁面所涉及的所有步驟。
基本上所有的請求都轉到前端控制器。它的工作是將請求路由到適當的控制器代碼。它在app/config/routing.yml
文件中定義的路線的幫助下完成此操作。在src/<BundleName>/Controller/<name>
中定義的控制器執行一些業務邏輯,例如從模型(存儲庫)獲取數據並將該信息發送到視圖(模板)。這些視圖只是HTML代碼。 Symfony使用稱爲Twig的模板引擎。 Symfony不是將HTML代碼中的<?php ... ?>
塊包括在內,而是將來自控制器的數據傳遞給Twig {% %}
或{{ }}
塊中的視圖內部。
簡單地說,這裏是工作流程:
- 瀏覽器發送請求在前端控制器
web/app_dev.php
或web/app.php- 前端控制器接收
- 請求檢查在
app/config/routing.yml
定義的路由和將該請求發送到在src/<BundleName>/Controller/<controller_name>
中定義的適當的 控制器- 控制器準備HT中所需的內容ML(實施例 - 從
src/<BundleName>/Repository
查詢數據庫)和信息發送到視圖 -src/Resources/views/<twig file name>
- 視圖創建HTML並將其發送回控制器
- 控制器創建一個HTTP響應,並將其發送回瀏覽器
有東西,如應用程序/ AppKernel這間進來,但我跳過它。
這裏是鏈接有用的摘錄上面提供:
網址:
http://localhost/Symfony/web/app_dev.php/demo/hello/Fabien
這是怎麼回事?我們來剖析網址: app_dev.php:這是一個前端控制器。它是應用程序的唯一入口點,它響應所有用戶請求; /demo/hello/Fabien:這是用戶想要訪問的資源的虛擬路徑。 您作爲開發人員的責任是編寫將用戶請求(/ demo/hello/Fabien)映射到與其關聯的資源(Hello Fabien!HTML頁面)的代碼。
路由:
的Symfony2將請求路由到通過試圖請求的URL對一些配置的模式匹配處理它的代碼。默認情況下,這些模式(稱爲路由)是在app/config/routing.yml配置文件中定義的。當您處於開發環境中時 - 由app_ dev .php前端控制器指示 - app/config/routing_dev.yml配置文件也會加載。在標準版,這些「示範」頁面的路線被放置在該文件中:
_welcome:
pattern:/
defaults: { _controller: AcmeDemoBundle:Welcome:index }
控制器:
Symfony2的選擇基於從路由_controller值時,控制器配置:AcmeDemoBundle:歡迎:索引。此字符串是控制器邏輯名稱,和它從Acme公司\ DemoBundle \控制器\ WelcomeController類引用的indexAction方法:
class WelcomeController extends Controller
{
public function indexAction()
{
return $this->render('AcmeDemoBundle:Welcome:index.html.twig');
}
}
檢視:
控制器呈現的src/ACME/DemoBundle /資源/視圖/演示/ hello.html.twig模板
{% extends "AcmeDemoBundle::layout.html.twig" %}
{% block title "Hello " ~ name %}
{% block content %}
<h1>Hello {{ name }}!</h1>
{% endblock %}
您可能還想看看Symfony2 architecture
- 1. 啓動多個工作流程的單一工作流程
- 2. WebRTC工作流程
- 3. sharepoint工作流程
- 4. NetSuite工作流程
- 5. Erlang工作流程
- 6. CMake工作流程?
- 7. sharepoint工作流程
- 8. GIT:Gitflow工作流程
- 9. Docker工作流程
- 10. svnmerge工作流程
- 11. App Engine的工作流程
- 12. jenkins的工作流程
- 13. autorelease池的工作流程
- 14. odoo中的工作流程
- 15. 流程/工作流程引擎
- 16. html流程圖/工作流程圖
- 17. 從狀態工作流程內啓動順序工作流程
- 18. 工作流程基礎工作流程類型
- 19. Sharepoint Designer 2007 - 工作流程和輔助工作流程關係
- 20. 在工作流程中調用工作流程
- 21. 從另一個工作流程中運行工作流程
- 22. 如何暫停工作流程並恢復工作流程?
- 23. 將SharePoint Designer工作流程遷移到Visual Studio工作流程
- 24. Windows工作流程:「singleton」式工作流程?
- 25. 一般工作流程 - 問題/ ez組件工作流程
- 26. 窗口工作流程4工作流程檔位
- 27. 工作流程中pimcore不工作
- 28. 工作流程/設計
- 29. CMake往返工作流程
- 30. Dalvik JIT工作流程