我是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. Java中的流程/工作流程
- 2. 啓動多個工作流程的單一工作流程
- 3. 帶VS2012工作流程的TFS2010工作流程構建流程模板
- 4. Sidekiq工作流程
- 5. NetSuite工作流程
- 6. Drupal工作流程
- 7. AsyncTask工作流程
- 8. CMake工作流程?
- 9. NetSuite工作流程
- 10. Testflight工作流程
- 11. 工作流程擰
- 12. Docker工作流程
- 13. sharepoint工作流程
- 14. GIT:Gitflow工作流程
- 15. Matplotlib工作流程
- 16. Couchbase工作流程
- 17. Phonegap工作流程
- 18. WebRTC工作流程
- 19. svnmerge工作流程
- 20. sharepoint工作流程
- 21. Erlang工作流程
- 22. Dudamobile工作流程
- 23. 工作流程 - ServiceNow
- 24. HashMap的工作流程
- 25. odoo中的工作流程
- 26. jenkins的工作流程
- 27. Oozie的工作流程shellAction
- 28. Git的工作流程:
- 29. App Engine的工作流程
- 30. JIRA中的工作流程