# 重要项目配置 考虑到为了方便项目进行配置,同时兼顾系统性能,将一些常用、需要进行个性但不频繁调整的配置,统一放置在./config/app.php配置文件中统一维护。 其中,project为项目配置,你可能会在你的项目中看到类似以下的配置内容: ```php /** * 项目配置 */ '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 用于平台站点展示的项目名称,修改只影响展示和文案的显示,不影响功能使用。 ```php // 项目名称 'name' => '果果云', ``` ## 项目Logo和图标 ### 配置项:logo和ico ```php // logo链接 'logo' => '/logo.png', // 顶端图标 'ico' => '/favicon.ico', ``` ## 接口文档查看密码 ### 配置项:doc_view_code 查看文档的密码,为空时不需要密码,可防止外部非相关的人员查看接口文档。 ```php // 查看文档的密码,为空时不需要密码 'doc_view_code' => '', ``` ## 是否允许会员注册 ### 配置项:is_member_register 总开关,是否允许会员注册,true允许,false不允许。关闭后,顾客将不能进行注册。 ```php // 总开关,是否允许会员注册,true允许,false不允许 'is_member_register' => true, ``` ## 每日接口请求次数限制 ### 配置项:app_limit 角色级别的每日掊次数限制,优先使用应用配置。应用未限制时,再使用此配置。 ```php 'app_limit' => 0, // 开发者角色每日接口调用次数限制,为0时表示无限制(优先使用应用的app_limit) ``` ## 是否允许开放者注册 ### 配置项:is_dev_register 总开关,是否允许开放者注册,true允许,false不允许。关闭后,开发者将不能在开放平台上进行注册。但可以通过管理后台进行添加。 ```php // 总开关,是否允许开放者注册,true允许,false不允许 'is_dev_register' => true, ``` ## 用户等级及映射 ### 配置项:member_level_map 用户等级及映射,下标对应member表的member_level字段,建议按权限从低到高配置。0,100,101,200,201为系统自带等级,不宜更改。可扩展追加。 ```php // 用户等级及映射,下标对应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文件,定义账号类型常量,方便开发,避免使用魔法数字。 ```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 每个开发者最多可以创建的应用数量上限。管理后台添加应用不受数量限制。 ```php // 每个开发者最多可以创建的应用数量上限 'dev_max_app_num' => 10, ``` ## 默认应用接口每日接口次数上限 ### 配置项:default_daily_app_limit 默认应用接口每日接口次数上限,0表示没有限制,不分接口。每个应用的接口次数限制可通过管理后台单独修改和配置。 ```php // 默认应用接口每日接口次数上限,0表示没有限制 'default_daily_app_limit' => 100000, ``` ## 默认接口权限 ### 配置项:default_app_api_rigths_is_allow ```php // 默认接口权限,没有任何配置时应用对于接口调用的默认权限,推荐设置为false 'default_app_api_rigths_is_allow' => false, ``` ## 开放接口的命名空间 ### 配置项:open_api_namespaces ```php // 开放接口的命名空间,配置后可提供接口权限分配,可配置多个 'open_api_namespaces' => array('App'), ``` 可以追加自己新增的接口命名空间。后面文档会有专门介绍。 ## 翻译语言 见default_language和language_list。 ## 验证码 见captcha。 ## 其他配置:JWT令牌 jwt对应access_token的配置,你可以修改```key```,但修改后原来全部授权的access_token都会全部生效,需要客户端重新申请新的令牌。 你还可以修改```exp```令牌有效的时间,只对新分配的令牌有影响。言下之意,对已经申请的令牌无影响。 ```php /** * JWT令牌 */ 'jwt' => array( 'key' => '*#FD2F9DM~E*', // 用于加密的key(安装时自动生成,不能修改!) 'exp' => 30 * 86400, // 令牌生成后多少秒内有效,可自行修改 ), ``` ## 其他配置:用户 账号用户里面有一个配置,是用于进行密码加密的公共盐值。不要修改,会导致原有的全部账号密码不正确。 强烈建议不要修改,除非清楚在做什么。 ```php /** * 用户 */ 'member' => array( 'salt' => '9DfnseJ%sD#', // 用于增强用户密码(安装时自动生成,不能修改!) ), ``` ## 其他配置:上传配置 如果你需要单独为图片文件配置域名,可以修改```host```;如果需要切换上传的目录位置,可以修改```upload_folder_path```并确保有写入权限。 ```php /** * 上传配置 */ '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白名单。