Asf 配置说明


必要配置项

Asf 框架基础运行, 有了这一个配置就能完成。

名称 值类型 默认值 简介
asf.root_path string NULL 业务程序的根目录, 比如: /data/www/
最后的路径符号(/) 不强制要求填写

可选配置项

bool: false 关闭 , true 开启

名称 值类型 默认值 简介
asf.log_path string NULL 正确的格式是目录地址, 比如: /data/logs/
最后的路径符号(/) 不强制要求填写
asf.modules string api 声明信任module模块的白名单, 多个模块名称以逗号分隔
项目存在多个模块时, api模块名称可以省略
比如: asf.modules = "api, admin, shop, cat"
asf.bootstrap string NULL bootstrap 绝对路径 + 文件名; 默认空 位于asf.root_path/Bootstrap.php
asf.contants string NULL contants 绝对路径 + 文件名; 默认空 位于asf.root_path/Constants.php
asf.library string NULL 默认去根目录下查找文件, asf.root_path/library/
自定义类库目录的绝对地址, 比如: /data/php/library/
加载文件的规则是, 类名就是文件名称
asf.base_uri string NULL 在路由器识别地址中, 需要忽略的前缀. 只适用于路由协议 Asf_Route_Pathinfo
asf.dispatcher.default_module string api 声明默认的module名称
asf.dispatcher.default_service string index 声明默认的service名称
asf.dispatcher.default_action string index 声明默认的action名称
asf.dispathcer.route.type string pathinfo 三种路由协议: pathinfo、query、dot
asf.dispathcer.route.module_name string m 当使用路由协议query时生效, 设置module名称
asf.dispathcer.route.service_name string s 当使用路由协议query时生效, 设置控制器名称
asf.dispathcer.route.action_name string a 当使用路由协议query时生效, 设置action名称
asf.dispathcer.route.dot_name string method 当使用路由协议dot时生效, 设置URL参数的key名称
asf.dispathcer.log.sql bool false 注: 必须设置 asf.log_path 才能生效
在 asf.log_path 目录下生成 Asf_Sql_Log 日志文件(默认值), 记录SQL语句
(文件名暂时不支持自定义, 因为它不是强需求)
asf.dispathcer.log.err bool false 注: 必须设置 asf.log_path 才能生效
PHP内置函数 set_error_handler、set_exception_handler 组合体
在 asf.log_path 目录下生成 Asf_Err_Log 日志文件(默认值)
(日志文件名支持自定义)
asf.dispathcer.log.timeout bool false 注: 必须设置 asf.log_path 才能生效
在 asf.log_path 目录下生成 Asf_Timeout_Log 日志文件(默认值)
(日志文件名暂时不支持自定义)
asf.dispathcer.timeout.max_script_time double 1.0 注: 必须设置 asf.log_path 才能生效
PHP脚本最大执行时间 (单位: 秒)
在 asf.log_path 目录下生成 Asf_Timeout_Log 日志文件(默认值)
asf.dispathcer.timeout.* 系列配置输出内容相同日志文件名
(文件名暂时不支持自定义)
asf.dispathcer.timeout.max_db_time double 0.1 每条SQL(包括: MySQL, PgSQL, SQLite)最大执行时间 (单位: 秒)
asf.dispathcer.timeout.max_cache_time double 0.1 每条NoSQL命令(包括: Redis, Memcached, Mongo)最大执行时间 (单位: 秒)
asf.dispathcer.timeout.max_curl_time double 0.1 每条CURL请求最大执行时间 (单位: 秒)

php.ini 配置项

名称 值类型 默认值 简介
asf.env string online 环境配置, online 代表线上环境
asf.use_namespace bool false 使用命名空间方式注册框架提供的类, 权限控制在php.ini文件里设置才生效 (推荐开启)
asf.ctype_id uint 5 支持5种输出模式: 0 关闭, 1 json_errmsg, 2 serialize, 3 var_dump, 5 json_data
在cli模式下, 自动输出模式自动关闭。模式1结构比较清晰, 模式5节约流量。
模式1: {"errno":0,"errmsg":"","data":""} 模式5: {"errno":0,"data":"公用字段"}
asf.use_lcache bool false 有且只有文件日志类生效
开启日志缓冲区功能时, 数据先写入内存, 程序结束时合并数据再写入到文件
自动关闭打开的文件描述符
asf.log_buffer_size uint 100 设置Log Buffer缓冲区数量, 默认值 100
当缓冲区数量>=log_buffer_size, 日志一次性写入到文件中
asf.throw_exception bool true 默认抛出异常信息. 如果关闭, 直接输出错误信息
程序抛出异常, 可以使用异常函数 try{} ... catch{} 捕获到内容、错误码等
如果关闭, 程序直接输出错误信息, 无法进行异常捕获
asf.cache_config_enable bool false 框架入口配置文件缓存服务, 开启之后会常驻内存(详细说明)
asf.cache_config_expire uint 300 设置缓存数据有效期限, 默认 5 分钟过期 (单位: 秒)
asf.trace_enable uint 0 记录基于框架DB、Cache类各项操作的语句、耗时信息, 1开启 0关闭(default)
[remove] asf.lowcase_path bool false 默认文件名首字母转换为大写, 其余部分转换为小写. 如果开启, 项径 + 文件名全部转换为小写
[remove] asf.file_suffix bool false 设置文件名是否带类名, 默认不带类名(User.php). 如果开启, 带类名(Userservice.php)
[remove] asf.action_suffix bool true 默认方法名带Action后缀. 路由解析methodAction不区分大小写, 强烈建议保留默认值

框架内置的错误码

900 ~ 999 Asf 框架采用的错误码范围, 请开发者注意

错误号 (暂时不提供自定义) 错误号描述
990 ~ 999 Asf 框架异常捕获错误号码段
errno = 999, 表示含义: Fatal Error, 会对异常信息进行有效拦截
errno = 998, 表示含义: Warning
errno = 997, 表示含义: Notice
errno = 996, 表示含义: Strict
errno = 995, 表示含义: Deprecated
errno = 994, 表示含义: Unkown Error
970 ~ 989 Asf 框架耗时预警模块错误号码段, 配置项见: asf.dispathcer.timeout.*
errno = 970, 表示含义: MySQL 单条SQL执行时间超过预设阀值
errno = 971, 表示含义: Redis 单条NoSQL执行时间超过预设阀值
errno = 972, 表示含义: Memcached 单条NoSQL执行时间超过预设阀值
errno = 973, 表示含义: PgSQL 单条SQL执行时间超过预设阀值
errno = 974, 表示含义: SQLite 单条SQL执行时间超过预设阀值
errno = 975, 表示含义: CURL 请求时间超过预设阀值
errno = 976, 表示含义: 脚本完整生命周期请求时间超过预设阀值

框架内置常量

常量名称 常量名称(命名空间) 常量值
ASF_VERSION ASF\VERSION 2.2.3 (框架当前的版本号)
ASF_LOGGER_FILE ASF\LOGGER\FILE 0
ASF_LOGGER_SYSLOG ASF\LOGGER\SYSLOG 1
ASF_DB_MYSQL ASF\DB\MYSQL 0
ASF_DB_SQLITE ASF\DB\SQLITE 1
ASF_DB_PGSQL ASF\DB\PGSQL 2