12 KiB
重要项目配置
考虑到为了方便项目进行配置,同时兼顾系统性能,将一些常用、需要进行个性但不频繁调整的配置,统一放置在./config/app.php配置文件中统一维护。
其中,project为项目配置,你可能会在你的项目中看到类似以下的配置内容:
/**
* 项目配置
*/
'project' => array(
// 项目名称
'name' => '果果云',
// logo链接
'logo' => '/logo.png',
// 顶端图标
'ico' => '/favicon.ico',
// 查看文档的密码,为空时不需要密码
'doc_view_code' => '',
// 总开关,是否允许会员注册,true允许,false不允许
'is_member_register' => true,
// 总开关,是否允许开放者注册,true允许,false不允许
'is_dev_register' => true,
// 用户等级及映射,下标对应member表的member_level字段,建议按权限从低到高配置
// 0,100,101,200,201为系统自带等级,不宜更改。可扩展追加
'member_level_map' => array(
// 0~99区间表示会员
0 => array(
'name' => '普通会员',
'is_register' => true, // 是否允许注册
),
// 100~199区间表示开发者
100 => array(
'name' => '个人开发者',
'is_register' => true, // 是否允许开放平台注册
'app_limit' => 0, // 开发者角色每日接口调用次数限制,为0时表示无限制(优先使用应用的app_limit)
),
101 => array(
'name' => '企业开发者',
'is_register' => true, // 是否允许开放平台注册
'app_limit' => 0, // 开发者角色每日接口调用次数限制,为0时表示无限制(优先使用应用的app_limit)
),
// 200~255区间表示内部管理员
200 => array(
'name' => '普通管理员',
'is_register' => false, // 是否允许注册
),
255 => array(
'name' => '超级管理员',
'is_register' => false, // 是否允许注册
),
),
// 每个开发者最多可以创建的应用数量上限
'dev_max_app_num' => 10,
// 计划任务专用的静态访问令牌,可以自行修改,通过HTTP请求时需要使用,CLI执行时不需要
'task_access_token' => 'erVDwgv98Ls',
// 默认应用接口每日接口次数上限,0表示没有限制
'default_daily_app_limit' => 100000,
// 默认接口权限,没有任何配置时应用对于接口调用的默认权限,推荐设置为false
'default_app_api_rigths_is_allow' => false,
// 开放接口的命名空间,配置后可提供接口权限分配,可配置多个
'open_api_namespaces' => array('App'),
// 默认语言,简体中文,可选:zh_cn/zh_tw/fr/de/en,或自行扩展
'default_language' => 'zh_cn',
// 语言列表
'language_list' => array(
'zh_cn' => '简体中文',
'en' => 'English',
),
// 验证码
'captcha' => array(
'switch' => array(
'admin_login_captcha' => true, // 管理后台登录页面验证码开关
'platform_login_catpcha' => true, // 开放平台登录页面验证码开关
'platform_register_captcha' => true, // 开放平台注册页面验证码开关
),
'options' => array(
'charset' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', // 验证码字符
'length' => 4, // 验证码长度(默认长度为4,范围4~5)
'height' => 50, // 验证码显示高度(默认40,单位像素)
'width' => 200, // 验证码显示宽度(默认300,单位像素)
'is_case_sensitive' => false, // 是否区分大小写
),
),
// IP白名单,为空时不限制IP,只针对App开放接口
'allow_ips' => array(
// '127.0.0.1', // 每一组一个IP地址
),
),
下面分别介绍一些重要的项目配置。
项目名称
配置项:name
用于平台站点展示的项目名称,修改只影响展示和文案的显示,不影响功能使用。
// 项目名称
'name' => '果果云',
项目Logo和图标
配置项:logo和ico
// logo链接
'logo' => '/logo.png',
// 顶端图标
'ico' => '/favicon.ico',
接口文档查看密码
配置项:doc_view_code
查看文档的密码,为空时不需要密码,可防止外部非相关的人员查看接口文档。
// 查看文档的密码,为空时不需要密码
'doc_view_code' => '',
是否允许会员注册
配置项:is_member_register
总开关,是否允许会员注册,true允许,false不允许。关闭后,顾客将不能进行注册。
// 总开关,是否允许会员注册,true允许,false不允许
'is_member_register' => true,
每日接口请求次数限制
配置项:app_limit
角色级别的每日掊次数限制,优先使用应用配置。应用未限制时,再使用此配置。
'app_limit' => 0, // 开发者角色每日接口调用次数限制,为0时表示无限制(优先使用应用的app_limit)
是否允许开放者注册
配置项:is_dev_register
总开关,是否允许开放者注册,true允许,false不允许。关闭后,开发者将不能在开放平台上进行注册。但可以通过管理后台进行添加。
// 总开关,是否允许开放者注册,true允许,false不允许
'is_dev_register' => true,
用户等级及映射
配置项:member_level_map
用户等级及映射,下标对应member表的member_level字段,建议按权限从低到高配置。0,100,101,200,201为系统自带等级,不宜更改。可扩展追加。
// 用户等级及映射,下标对应member表的member_level字段,建议按权限从低到高配置
// 0,100,101,200,201为系统自带等级,不宜更改。可扩展追加
'member_level_map' => array(
// 0~99区间表示会员
0 => array(
'name' => '普通会员',
'is_register' => true, // 是否允许注册
),
// 100~199区间表示开发者
100 => array(
'name' => '个人开发者',
'is_register' => true, // 是否允许开放平台注册
),
101 => array(
'name' => '企业开发者',
'is_register' => true, // 是否允许开放平台注册
),
// 200~255区间表示内部管理员
200 => array(
'name' => '普通管理员',
'is_register' => false, // 是否允许注册
),
255 => array(
'name' => '超级管理员',
'is_register' => false, // 是否允许注册
),
),
添加后,建议同步修改./src/base/Domain/UserType.php文件,定义账号类型常量,方便开发,避免使用魔法数字。
/**
* 账号类型和等级
* - 依赖于app.project.member_level_map配置
*/
class UserType {
// 用户等级
const MEMBER_LEVEL_USER = 0; // 普通用户
const MEMBER_LEVEL_PERSON_DEVELOPER = 100; // 个人开发者
const MEMBER_LEVEL_COMPAY_DEVELOPER = 101; // 企业开发者
const MEMBER_LEVEL_ADMIN = 200; // 管理员
const MEMBER_LEVEL_SUPER_ADMIN = 255; // 超级管理员
开发者应用最大数量
配置项:dev_max_app_num
每个开发者最多可以创建的应用数量上限。管理后台添加应用不受数量限制。
// 每个开发者最多可以创建的应用数量上限
'dev_max_app_num' => 10,
默认应用接口每日接口次数上限
配置项:default_daily_app_limit
默认应用接口每日接口次数上限,0表示没有限制,不分接口。每个应用的接口次数限制可通过管理后台单独修改和配置。
// 默认应用接口每日接口次数上限,0表示没有限制
'default_daily_app_limit' => 100000,
默认接口权限
配置项:default_app_api_rigths_is_allow
// 默认接口权限,没有任何配置时应用对于接口调用的默认权限,推荐设置为false
'default_app_api_rigths_is_allow' => false,
开放接口的命名空间
配置项:open_api_namespaces
// 开放接口的命名空间,配置后可提供接口权限分配,可配置多个
'open_api_namespaces' => array('App'),
可以追加自己新增的接口命名空间。后面文档会有专门介绍。
翻译语言
见default_language和language_list。
验证码
见captcha。
其他配置:JWT令牌
jwt对应access_token的配置,你可以修改key,但修改后原来全部授权的access_token都会全部生效,需要客户端重新申请新的令牌。
你还可以修改exp令牌有效的时间,只对新分配的令牌有影响。言下之意,对已经申请的令牌无影响。
/**
* JWT令牌
*/
'jwt' => array(
'key' => '*#FD2F9DM~E*', // 用于加密的key(安装时自动生成,不能修改!)
'exp' => 30 * 86400, // 令牌生成后多少秒内有效,可自行修改
),
其他配置:用户
账号用户里面有一个配置,是用于进行密码加密的公共盐值。不要修改,会导致原有的全部账号密码不正确。
强烈建议不要修改,除非清楚在做什么。
/**
* 用户
*/
'member' => array(
'salt' => '9DfnseJ%sD#', // 用于增强用户密码(安装时自动生成,不能修改!)
),
其他配置:上传配置
如果你需要单独为图片文件配置域名,可以修改host;如果需要切换上传的目录位置,可以修改upload_folder_path并确保有写入权限。
/**
* 上传配置
*/
'upload' => [
'host' => '', // 图片文件域名,为空时取当前域名,修改不影响原有的文件地址,可单独配置图片域名或CDN域名,格式:http://img.xxx.com(前面加协议,最后不用斜杠)
'upload_folder_path' => 'uploads', // 上传目录,可修改,注意:1)目录存在且有写入权限;2)需要放置在public目录下,支持外部访问;
// 如果需要存储到阿里云OSS,请修改以下配置(全部必填方可生效)。若OSS上传失败,将会降级使用本地存储
// 如何开通阿里云开通OSS服务:https://help.aliyun.com/document_detail/31884.html?spm=a2c4g.11186623.2.15.d8f41c62os2XRV#task-njz-hf4-tdb
// 开通后,创建bucket,并把权限设置为:公共读
'aliyu_oss' => array(
'accessKeyId' => '', // TODO:修改成你的配置
'accessSecret' => '', // TODO
'bucket' => '', // TODO Bucket名称
'endpoint' => '', // TODO endpoint,例如:http://oss-cn-beijing.aliyuncs.com
),
],
IP白名单配置
如果需要配置全局的IP白名单,这部分IP白名单只针对调用App命名空间的开放接口的客户端IP地址进行限制,可以修改以下配置。为空时不限制,每一组一个IP地址。
// IP白名单,为空时不限制IP,只针对App开放接口
'allow_ips' => array(
// '127.0.0.1', // 每一组一个IP地址
),
温暖提示:如果需要针对单个应用进行限制,可以进入Admin管理后台单独修改应用的IP白名单。