Thinkphp的致命错误捕获流程

1. 程序start的时候注册脚本结束时的回调函数:

register_shutdown_function(‘Think\Think::fatalError‘);

2. 通过error_get_last()获取最后一次发生的错误信息

    static public function fatalError() {
        Log::save();
        if ($e = error_get_last()) {
            switch($e[‘type‘]){
              case E_ERROR:
              case E_PARSE:
              case E_CORE_ERROR:
              case E_COMPILE_ERROR:
              case E_USER_ERROR:
                ob_end_clean();
                self::halt($e);
                break;
            }
        }
    }

3. 通过halt格式化错误信息输出

时间: 2024-08-01 22:44:56

Thinkphp的致命错误捕获流程的相关文章

ThinkPHP2.2框架执行流程图,ThinkPHP控制器的执行流程

ThinkPHP2.2框架执行原理.流程图在线手册 ThinkPHP控制器的执行流程 对用户的第一次URL访问 http://<serverIp>/My/index.php/Index/show/ 所执行的流程进行详细的分析,用户的URL访问首先是定位到了My项目的index.php 入口文件(注意:如果使用了URL_REWRITE,可能index.php已经被隐藏了),项目的入口文件所做的其实是实例化一个App应用实例,并且执行这个应用. 1.加载公共入口文件 在实例化App类之前,我们需要

ThinkPHP框架的的流程控制-请求视图页面

ThinkPHP框架今天看了一下,感觉确实比zend方便了很多,之所以不看zend,是因为我是在是受不了了,难度太大,以至于我一个小时的视屏看了六遍也没有搞明白,这样的话,后面的东西我就无法进行,因为之间的联系性很大,所以,索性循循渐进把,把THINKPHP学习一下,然后再过度到zend,果然,经过学习,发现ThinkPHP的框架要比zend 简单了很多,一方面是他的配置相对较为简单,知识仅仅的配置好虚拟主机就可以了,这个在zend是很难想象的,另外,对于方法的调用也相对的较为方便,因为它不像z

支付宝支付即时到账接口在ThinkPHP商城中的应用

支付宝支付是PHP高级课程中ThinkPHP商城项目课的内容之一,在此视频中将会讲解如何将支付宝作为第三方库集成到ThinkPHP框架中,并且将支付宝的配置参数写入自定义配置中从而达到在整个项目中灵活调用支付的目的.涉及到的知识点有使用vendor函数加载第三方扩展库,对vendor函数做了详细的介绍.使用C函数来读取自定义配置.结合ThinkPHP的特性和支付宝第三方支付的调用方式做了支付宝集成到ThinkPHP框架的完整流程. 1.   支付宝支付–即时到账 1.1.  获取即时到账sdk

Thinkphp 源码分析

ThinkPHP是国内非常火的一个轻量级框架,采用MVC模式,结构写的非常好,今天 大象 带大家走一下ThinkPHP框架系统运行流程,我将跟随ThinkPHP的执行进行代码讲解,第一课,先讲解URL路由解析 一.ThinkPHP框架目录 /test/index.php //项目入口文件 /ThinkPHP/ThinkPHP.php //框架入口文件 Common 框架公共文件目录(函数库) ThinkPHP/Common/runtime.php //框架初次运行文件 ThinkPHP/Comm

GTD时间管理(1)---捕获搜集

前一段时间感觉自己的整个思路很混乱,每一天觉得自己有很多事情很多,但是坐着做着不知道自己做了多少,做项目的时候做着做着时常东想西想.我个人觉得这种想法是不对经的. 于是在google上都出去寻找这方面的答案,找了几天网友都说GTD(时间管理系统)东西,对我们管理时间有很多帮助. 于是我决定花点时间去研究这个东西,开始的时候我觉得很痛苦,慢慢我已经爱上GTD. 下面我来介绍一下GTD是我自己理解建立于David Allen上改造的. 1:什么是GTD? GTD是英文Getting Things D

STM32——输入捕获实验原理及配置步骤

输入捕获实验原理及配置步骤 一.输入捕获概念 STM32的输入捕获,简单的说就是通过检测 TIMx_CHx (定时器X的通道X)上的 边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值(TIMx_CNT) 存放到对应的通道的捕获/比较寄存器(TIMx_CCRx)里面,完成一次捕获.同时还可以配置捕获时是否触发中断/DMA 等. 二.输入捕获流程: 例如,要配置向上计数器在T12输入端的上升沿计数,使用下列步骤: 1.配置TIMx_CCMR1寄存器CC2S='01',配置通

DOM事件: DOM事件级别、DOM事件流、DOM事件模型、DOM事件捕获过程、自定义事件

前端面试中只要问到事件,就肯定会有DOM事件:如果回答出来了,就会一直向下延申,其实这些东西都很简单,但我第一次被问到的时候,也是懵的: DOM事件级别: DOM0 element.onclick = function() { } DOM1 一般只有设计规范,没有设计跟事件相关的东西:所以直接跳过 DOM2 element.addEventListener(‘click’, function() { }, false) DOM3 element.addEventLIstener(‘keyup’,

Express 开发与部署最佳实践

本篇文章翻译自expressjs官方网站,源地址如下:express最佳实践 ,分别从dev角度和ops角度讨论了如何提升express应用的运行性能以及部署的最佳方式. 针对开发者需要注意的问题 对于一个express应用我们,一般有以下的几种方法来提升应用的运行效率以及响应率. 使用gzip压缩 代码中不要使用同步函数 使用中间件处理静态文件 合理的日志处理方法 正确的处理异常 以下我们将分别对于每个子项目进行展开分析. 1.使用gzip压缩 使用gzip压缩可以显著的减小响应包的大小,这样

QTP的基本功能介绍

? QTP的基本功能介绍 HP QuickTest Professional 支持功能測试和回归測试自己主动化,用于每一个主要软件应用程序和环境.此解决方式使用keyword驱动的測试概念,简化了測试创建和维护过程.它使測试人员可以使用专业的捕获技术直接从应用程序屏幕中捕获流程来构建測试案例.測试专家还可通过集成的脚本和调试环境全然訪问内在測试和对象属性 ? QTP框架结构 以Test为測试执行单位,每一个Test包括若干类型Action.以Action为最 小单位映射对象库,多个Action之