Files
phalapi-pro/public/wiki/2x-config.md
2022-03-21 11:16:38 +08:00

12 KiB
Raw Blame History

重要项目配置

考虑到为了方便项目进行配置,同时兼顾系统性能,将一些常用、需要进行个性但不频繁调整的配置,统一放置在./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白名单。