zoukankan      html  css  js  c++  java
  • Symfony学习HttpKernel组件

    http://symfony.com/doc/2.1/components/http_kernel/introduction.html

    HttpKernel这个类提供的功能说白了就是将Request转换成Response。它使用一个流程的工作流似的方式。

    整个流程图大致如下:

    Image

    HttpKernel最核心的是handle(); 它的工作就是将上图的Request转换成Response。

    handle()是由事件驱动的,你可以建立一系列的事件监听

    典型的代码如下:

    Image(1)

    步骤:

    1 处理request

    一个request可以有多个listener,listener可能直接中断,并且直接返回Response。

    2 解析controller

    这里有个ControllerResolver类来对controller进行解析,它有两个接口:

    getController

    getArguments

    如果你要自定义这个解析类,你就需要自己实现这两个接口。

    3 处理controller

    初始化,并且在实际执行前改变对应的控制器

    4 获取controller参数

    通过getArguments()这个方法来获取controller的参数

    5 实际调用controller

    这个阶段会实际调用controller了,并得到返回的数据

    6 view

    这个阶段就是mvc的view层。将controller中返回的数据加上view层

    7 kernel.response 事件

    在数据返回前改变对应的Response事件。

    8 kernel.terminate事件

    在数据返回给用户前处理一些较重的事件。

    异常处理:


    是触发了kernel.exception事件

    每个异常都返回了一个GetResponseForExceptionEvent事件,你可以使用getException()方法获取原始的异常。

    实时了解作者更多技术文章,技术心得,请关注微信公众号“轩脉刃的刀光剑影”

    本文基于署名-非商业性使用 3.0许可协议发布,欢迎转载,演绎,但是必须保留本文的署名叶剑峰(包含链接http://www.cnblogs.com/yjf512/),且不得用于商业目的。如您有任何疑问或者授权方面的协商,请与我联系

  • 相关阅读:
    python的元类
    中国的互联网:草根与精英
    PEP8中文翻译
    一些重要的算法
    tornado模板语法
    C#l类与对象
    sql_ 存储过程
    SQL_触发器
    SQL_事务处理
    C#_方法
  • 原文地址:https://www.cnblogs.com/yjf512/p/3106324.html
Copyright © 2011-2022 走看看