PHP MVC框架之错误捕捉入门教程
发布:smiling 来源: PHP粉丝网 添加日期:2014-02-27 14:08:17 浏览: 评论:0
以前有讲过关于php mvc的各种用法,本文章主要介绍PHP MVC框架之错误捕捉用法说明,各位同学可参考.前三篇文章已经把MVC的结构原理都简单的进行了说明和演示...当然,不是说一个框架就只有那点东西,一个良好的框架所要求的功能还是要很全面的,例如友好的错误输出,安全处理,防止跨域攻击等.
好了,我们一步一步来.这节要说的是错误捕捉,其实这个不难,只要理解2个方法就可以做好错误捕捉的程序.
实例代码如下:
- register_shutdown_function(‘functionname’);
- set_error_handler(‘functionname’);
第一个方法,是注册一个shutdown的回调函数,当php脚本关闭时调用,当然这个关闭可以是正常的代码执行完毕,也可以是程序抛出致命错误关闭的脚本,那我怎么区分呢?别急,php还有一个方法叫error_get_last() 就像函数名说的那样,获取php最后一个错误信息,这样就可以判断是代码正常执行完毕还是遇到fatal error...
第二个方法,是注册一个error的回调函数,当脚本执行遇到错误时调用.这2个方法最大的区别是,第一个是脚本关闭调用,也就是1次访问,只会调用一次(因为发生致命错误脚本就退出执行了),二第二个方法的触发调用是发生错误的时候,例如访问数组中不存在的index,使用未定义的变量,就是这些warning,notice错误的捕捉...如果你想更了解二者的区别,建议访问php官网查看文档说明...这里我就不贴代码了,有兴趣的同学,可以去github那里下回来慢慢看...
实例代码如下:
- <?php
- # 定义application路径
- define('APPPATH', trim(__DIR__,'/'));
- # 获得请求地址
- $root = $_SERVER['SCRIPT_NAME'];
- $request = $_SERVER['REQUEST_URI'];
- $URI = array();
- # 获得index.php 后面的地址
- $url = trim(str_replace($root, '', $request), '/');
- # 如果为空,则是访问根地址
- if (emptyempty($url))
- {
- # 默认控制器和默认方法
- $class = 'Index';
- $func = 'welcome';
- }
- else
- {
- $URI = explode('/', $url);
- # 如果function为空 则默认访问index
- if (count($URI) < 2)
- {
- $class = ucfirst($URI[0]);
- $func = 'index';
- }
- else
- {
- $class = ucfirst($URI[0]);
- $func = $URI[1];
- }
- }
- # 把class加载进来
- include(APPPATH . '/' . 'application/controllers/' . $class . '.php');
- #实例化
- $obj = new $class;
- call_user_func_array(
- # 调用内部function
- array($obj,$func),
- # 传递参数
- array_slice($URI, 2)
- );
我们来看看最终的效果...我们来试试访问不存在的controller里的方法试试先看看没有错误捕捉的时候:再来对比下做了错误捕捉的时候.
Tags: 框架 错误 捕捉
相关文章
- ·PHP MVC框架 视图之常用学习笔记(2014-02-27)
- ·Javascript操作iframe框架经典案例(2016-01-20)
- ·搭建php Laravel框架教程详解(2017-03-23)
- ·教你如何在CI框架中使用 .htaccess 隐藏url中index.php(2021-02-10)
- ·CI框架中集成CKEditor编辑器的教程(2021-02-10)
- ·kohana框架上传文件验证规则写法示例(2021-03-20)
- ·php ci框架中加载css和js文件失败的原因及解决方法(2021-03-27)
- ·php CI框架插入一条或多条sql记录示例(2021-03-27)
- ·PHP开发框架Laravel数据库操作方法总结(2021-04-10)
- ·CI框架Session.php源码分析(2021-04-22)
- ·php实现简单的MVC框架实例(2021-06-18)
- ·深入讲解PHP的Yii框架中的属性(Property)(2021-07-18)
- ·PHP封装请求类实例分析【基于Yii框架】(2022-01-08)
- ·如何正确理解PHP的错误信息(2013-11-13)
- ·用--with-apxs来编译PHP时,我得到了奇怪的错误信息(2013-11-27)
- ·php 错误报告开启详细实现(2013-11-29)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)