使用Symfony2的工作流?

使用Symfony2的工作流?,symfony,Symfony,我是新来的symfony2。我从一些教程开始,然后开始构建SYMBLOG。我已经理解它,我能够添加或更改功能。我对工作流程有点困惑,我指的是文件如何协同工作以呈现页面或生成输出。谁能从一开始就详细解释一下symfony2中的流程是如何进行的。从用户请求开始,假设用户输入url,直到symfony2显示结果。请在流程中包含routing.yml 您应该查看此链接 它详细解释了从在浏览器中输入URL到呈现页面所涉及的所有步骤 基本上所有的请求都发送到前端控制器。它的工作是将请求路由到适当的控制器代码

我是新来的symfony2。我从一些教程开始,然后开始构建SYMBLOG。我已经理解它,我能够添加或更改功能。我对工作流程有点困惑,我指的是文件如何协同工作以呈现页面或生成输出。谁能从一开始就详细解释一下symfony2中的流程是如何进行的。从用户请求开始,假设用户输入url,直到symfony2显示结果。请在流程中包含routing.yml

您应该查看此链接

它详细解释了从在浏览器中输入URL到呈现页面所涉及的所有步骤

基本上所有的请求都发送到前端控制器。它的工作是将请求路由到适当的控制器代码。它是在
app/config/routing.yml
文件中定义的路由的帮助下实现的。
src//Controller/
中定义的控制器执行一些业务逻辑,例如从模型(存储库)获取数据并将该信息发送到视图(模板)。这些视图只是HTML代码。Symfony使用名为Twig的模板引擎。Symfony不在HTML代码中包含
块,而是从控制器传递数据,它可以在Twig
{%}
{}
块内的视图中轻松使用

简单地说,以下是工作流程:

  • 浏览器发送请求
  • 在前端控制器
    web/app_dev.php
    或web/app.php中收到请求
  • 前端控制器检查在app/config/routing.yml中定义的路由,并将请求发送到相应的
    src//controller/
  • Controller准备HTML中所需的内容(示例-从
    src//Repository
    查询数据库),并将信息发送到视图-
    src/Resources/views/
  • 视图创建HTML并将其发送回控制器
  • 控制器创建HTTP响应并将其发送回浏览器
  • 有些东西,比如app/AppKernel,介于两者之间,但我跳过了它

    以下是上述链接的有用摘录:

    网址:

    http://localhost/Symfony/web/app_dev.php/demo/hello/Fabien
    
    这是怎么回事?让我们分析一下URL: app_dev.php:这是一个前端控制器。它是应用程序的唯一入口点,并响应所有用户请求; /demo/hello/Fabien:这是用户想要访问的资源的虚拟路径。 作为开发人员,您的责任是编写代码,将用户的请求(/demo/hello/Fabien)映射到与其相关的资源(hello Fabien!HTML页面)

    路由:

    http://localhost/Symfony/web/app_dev.php/demo/hello/Fabien
    
    Symfony2通过尝试将请求的URL与一些配置的模式匹配,将请求路由到处理它的代码。默认情况下,这些模式(称为路由)在app/config/routing.yml配置文件中定义。当您在dev环境中时(由appdev.php前端控制器指示),app/config/routing_dev.yml配置文件也会被加载。在标准版中,这些“演示”页面的路径放置在该文件中:

    控制器:

    http://localhost/Symfony/web/app_dev.php/demo/hello/Fabien
    
    Symfony2根据路由配置中的_controller值选择控制器:AcmeDemoBundle:Welcome:index。此字符串是控制器逻辑名称,它引用Acme\DemoBundle\controller\WelcomeController类中的indexAction方法:

    查看:

    http://localhost/Symfony/web/app_dev.php/demo/hello/Fabien
    
    控制器呈现src/Acme/DemoBundle/Resources/views/Demo/hello.html.twig模板

    {%extends“AcmeDemoBundle::layout.html.twig”%}
    {%block title“Hello”~name%}
    {%block content%}
    你好{{name}}!
    {%endblock%}
    

    您可能还想查看Symfony2