我是symfony2的新手.我从一些教程开始,然后开始构建SYMBLOG.我理解它,我能够添加或更改功能.我在工作流程中有点混乱,我的意思是文件如何协同工作以呈现页面或生成输出.任何人都可以从一开始就详细解释我在symfony2中如何进行此流程.从用户请求开始说用户输入url直到symfony2显示结果.请在流程中包含routing.yml.?
Ami*_*mit 21
你应该看看这个链接.Symfony - 全局
它详细解释了从您在浏览器中输入URL到呈现页面时所涉及的所有步骤.
基本上所有请求都发送到前端控制器.它的工作是将请求路由到适当的控制器代码.它在app/config/routing.yml文件中定义的路由的帮助下完成此操作.定义的控制器src/<BundleName>/Controller/<name>执行一些业务逻辑,例如从模型(存储库)获取数据并将该信息发送到视图(模板).视图只是HTML代码.Symfony使用名为Twig的模板引擎.<?php ... ?>Symfony 不是在HTML代码中包含块,而是从控制器传递数据,并且可以在Twig {% %}或{{ }}块内的视图内轻松使用.
简而言之,这是工作流程:
- 浏览器发送请求
- 在前端控制器
web/app_dev.php或web/app.php 收到请求- 前端控制器检查定义的路由
app/config/routing.yml,并将请求发送到定义的适当控制器src/<BundleName>/Controller/<controller_name>- Controller准备HTML中所需的内容(示例 - 从中查询数据库
src/<BundleName>/Repository)并将信息发送到视图 -src/Resources/views/<twig file name>- 该视图创建HTML并将其发送回控制器
- 控制器创建HTTP响应并将其发送回浏览器
有一些东西,比如app/AppKernel介于两者之间,但我已经跳过了它.
以下是上面提供的链接的有用摘录:
网址:
http://localhost/Symfony/web/app_dev.php/demo/hello/Fabien
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?让我们剖析一下URL:app_dev.php:这是一个前端控制器.它是应用程序的唯一入口点,它响应所有用户请求;/demo/hello/Fabien:这是用户想要访问的资源的虚拟路径.作为开发者的职责是编写映射用户的请求(/演示/你好/法比安斯基)与它(你好法比安斯基!HTML页面)相关联的资源的代码.
路由:
Symfony2通过尝试将请求的URL与某些已配置的模式匹配,将请求路由到处理它的代码.默认情况下,这些模式(称为路由)在app/config/routing.yml配置文件中定义.当您处于开发环境中时 - 由app_ dev .php前端控制器指示- 还会加载app/config/routing_dev.yml配置文件.在标准版中,这些"演示"页面的路径放在该文件中:
_welcome:
pattern: /
defaults: { _controller: AcmeDemoBundle:Welcome:index }
Run Code Online (Sandbox Code Playgroud)
控制器:
Symfony2根据路由配置中的_controller值选择控制器:AcmeDemoBundle:Welcome:index.此字符串是控制器逻辑名称,它引用Acme\DemoBundle\Controller\WelcomeController类中的indexAction方法:
class WelcomeController extends Controller
{
public function indexAction()
{
return $this->render('AcmeDemoBundle:Welcome:index.html.twig');
}
}
Run Code Online (Sandbox Code Playgroud)
视图:
控制器呈现src/Acme/DemoBundle/Resources/views/Demo/hello.html.twig模板
{% extends "AcmeDemoBundle::layout.html.twig" %}
{% block title "Hello " ~ name %}
{% block content %}
<h1>Hello {{ name }}!</h1>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
您可能还想查看Symfony2 架构
| 归档时间: |
|
| 查看次数: |
3892 次 |
| 最近记录: |