-
Notifications
You must be signed in to change notification settings - Fork 18
gettingStarted error
tolizhan edited this page Dec 1, 2024
·
1 revision
- 框架配置preloaded加入"of_base_error_writeLog"启动
- 开发模式时, 产生错误会有明显的提示
- 生产模式时, 加$_REQUEST['__of_DEBUG__']参数强制显示错误,如 /index.php?c=xx&__OF_DEBUG__
- 访问 框架目录(如:/include/of)/index.php?c=of_base_error_tool 来查阅以往错误的详细信息
- 修改框架配置 _of.error.xxx = false 禁用对应日志的记录
- 在SQL死锁时, 会尝试使用 PROCESS 权限, 读取死锁日志
- 调用 of::event('of::error', true, 异常对象或错误数组) 来自定异常或错误

-
cleanbooltrue=清除错误信息, false=读取错误信息
<?php /** * 默认框架会记录产生的错误及异常 */ trigger_error("A custom error has been triggered"); throw new Exception("Value must be 1 or below");
/** 主动记录异常日志并不会影响后代码执行 / try { throw new Exception("Demo exception"); //抛出异常 } catch (Exception $e) { of::event('of::error', true, $e); //记录错误 }
/** 自定义错误结构 : { "memo" : 作备忘录, 默认 false=正常抛出错误, true=不算错误仅存日志, str=指定备忘类型 "type" : 错误类型, 字符串类型, 不与"memo"同用 "code" : 错误代码, 默认 E_USER_NOTICE "info" : 错误描述, 默认 "Unknown error" "file" : 文件路径, 默认 代码触发文件 "line" : 错误行数, 默认 代码触发行数 } / of::event('of::error', true, array( 'memo' => 'DEBUG', 'code' => E_USER_WARNING, 'info' => 'Debug error', 'file' => FILE, 'line' => LINE ));
-
readbooltrue=读取错误信息, false=清除错误信息
<?php /** of_base_error_writeLog未启动也可以使用 详见of::work } / of::work('error'); //读取错误, 无错误为 null, 有错误返回 { "code" : 编码, "info" : 错误, "file" : 路径, "line" : 行数, ... } of::work('error', false); //清除错误
-
cleanbooltrue=清除错误信息, false=读取错误信息
<?php of_base_error_writeLog::lastError(false); //读取错误, 无错误为 null, 结构为 { 'logType' : 错误类型, 'environment' : { 'code' : 错误码, 'info' : 错误信息, 'file' : 错误文件, 'line' : 错误行数, 'backtrace' : 错误回溯 {} } } of_base_error_writeLog::lastError(true); //清除错误
-
<?php /** 回调函数接收的参数($params) { "type" :&错误来源, 其中一个(js, php, sql) "data" :&错误信息 { 'errorType' : 错误类型(sqlError, exception, error) 'environment' : 错误体,包括环境,错误细节,回溯 { 'type' : php=错误级别, sql=错误码及说明 'info' : php=错误描述, sql=错误sql 'file' : 定位->路径 'line' : 定位->行数 'envVar' : 环境变量 { '_GET' : 对应超全局变量 '_POST' : 对应超全局变量 '_COOKIE' : 对应超全局变量 '_SESSION' : 对应超全局变量 '_SERVER' : 对应超全局变量 '_REQUEST' : 对应超全局变量 'iStream' : 原始请求输入流 } 'backtrace' : 回溯信息,js没有 {} } 'time' : 生成时间戳 } } / function errorCallback($params) { print_r($params); //返回true时, 框架不记录日志 return true; } of::event('of_base_error_writeLog::error', 'errorCallback');
手册地址 http://phpof.net/
- 入门指引
-
疑难解答
- 部署时会遇到的那些常见问题
简单却容易忽视 - 框架内置有哪些管理界面
生产模式进入界面需用 __OF_DEBUG__ - 如何定制不同的架构模式
通过配置入口文件中调度方法的参数即可 - 如何面向命名空间开发
of_xx 类可以按照命名空间方式调用 - 如何设置不同的部署模式
通过_of.debug设置 开发,测试,生产 模式 - 为什么控制层类文件要返回true
这是防止非法访问的方法之一 - 为什么传到视图层的变量会被编码
这是因为 XSS 安全防范的原因 - 为什么框架没有SQL构造器
因常规方案牺牲了性能又未很好解决问题 - 如何快速开发用户及权限管理功能
单点登录(SSO)模块因此而存在 - 怎么在系统的基础上扩展底层功能
三点: 扩展开发, 预先加载, 底层钩子 - 怎么使用 Composer 依赖管理工具
框架已集成, 默认关闭状态
- 部署时会遇到的那些常见问题
- 组件使用
- 集成插件
- 扩展开发
- 开发手册