3 系统组件

3.1 日志路由组件

    1 每个Http请求,可能需要记录多条日志

    2 每条日志可以从2个纬度来进行分类:日志的严重级别、日志的业务逻辑

    业务逻辑分为:数据库操作日志、用户中心接口日志、Drmc接口日志、Memcache更新日志等

    严重级别分为:trace、info、profile、warning、error。

    一次Http请求的过程中,记录的日志的处理流程分为如下5个阶段:

    Step1:根据日志路由器的配置信息,生成各个日志记录对象,即CFileLogRoute、CEmailLogRoute、CWebLogRoute对象,日志路由组件统一管理这些对象

    Step2:程序员调用写日志的接口记录日志,所有的日志都是暂时保存在一个PHP的数组缓冲区中

    Step3:当缓冲区满的时候或请求处理结束的时候,会触发一个Flush事件。通知日志路由组件来获取日志,这里使用的就是观察者模式

    Step4:每个日志记录对象分别取出自己需要的日志,比如数据库的日志、用户中心交互日志、error级别的日志等、即各取所需

    Step5:每个日志记录对象分别保存自己的日志。CFileLogRoute对象把日志保存到文件中,CEmailLogRoute对日志进行发送邮件;CWebLogRoute把日志输出到web页面上

    

   

3.2 Url管理组件

    Url管理组件主要提供了两个功能:

        1 根据用户输入的url,解析出处理这个请求的路由--由哪个Controller的哪个Action来处理,同时将url的部分参数添加到$_GET参数中。

        2 根据路由和参数来创建url

    CUrlRule是管理URL的核心,接下来分析CUrlRule的工作原理

   

      

    1 初始化CUrlRule对象

        在CUrlRule对象的构造函数中,会初始化6各重要的成员变量

       

    2 解析url

        解析Url的工作分3步走:a 根据pattern规则,解析出url中的各个字段  b 根据references对路由中的引用字段进行替换 c 将params指定的字段添加到$_GET数组中

    3 创建url

         创建Url的工作分3步走:a 根据routePattern规则,解析出输入的路由中各个字段 b 将输入的参数数组和上一步解析的数组进行合并 c用合并的数组对template进行替换

3.3 异常处理组件

    CApplication将它的handleException/handleError方法注册为事件处理句柄,即CApplication得到所有的异常,然后将它交给异常处理组件处理

    异常处理最主要的工作是给浏览器端展示异常信息,一般都是将异常交给某个Action来展示;如果是正常请求,就返回一个异常页面,如果是ajax请求,就返回一个json,由浏览器端的javascript对json进行展示

   

3.4 Cache组件

    使用缓存可以很好的额提升web系统的性能,常用的缓存有:memcache、apc和redis等,YII定义了CCache类,为访问各种缓存定义了统一的接口。

   

3.5 角访问控制组件

    YII通过CAuthManager组件实现了分等级的RBAC机制

3.6 全局状态组件

    该组件用于存储持久化信息,这些信息会被序列化后保存到application.runtime.state.bin文件中,该组件提供了两个接口

   


    CApplication使用该组件类进行持续存储,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值