每个模块下面都会自动生成一个模块信息文件(info.php)。 >[warning] 模块信息文件(info.php)与模块配置文件(config.php)不一样哦! 模块信息配置文件(info.php)返回的是一个数据,数据结构如下: | 参数名 | 含义 | 数据类型 | 必填项 | | --- | --- | --- | --- | | name | 模块名 | string | 是 | | title | 模块标题 | string | 是 | | identifier | 模块唯一标识 | string | 是 | | theme | 默认主题名 | string | 是 | | icon | 模块图标 | string | 是 | | intro | 模块简介 | string | 否 | | author | 模块作者 | string | 否 | | author_url | 作者URL | string | 否 | | version | 模块版本号 | string | 是 | | module_depend | 模块依赖 | array | 否 | | plugin_depend | 插件依赖 | array | 否 | | tables | 模块数据表列表 | array | 否 | | db_prefix | 表前缀 | string | 否 | | hooks | 模块预埋钩子 | array | 否 | | config | 模块配置 | array | 否 | 模块参数详解如下: ## [name] 模块名 可使用字母(小写)、数字、下划线组成,建议尽量不要使用数字和下划线。 例:mall ## [title] 模块标题 该标题会在后台管理的顶部导航显示。 例:商城模块 ## [identifier] 模块唯一标识 区分不同开发者不同模块的唯一标识,格式:模块名.开发者标识(只能为字母、数字、下划线).module,如果您的模块有上云的话,模块标识由云端自动生成。后续会详细说明。 例:mall.hisiphp.module ## [theme] 默认主题名 模块的默认主题名为``default``,每个模块可制作多个主题,后台支持主题切换。主题名称可使用字母(小写)、数字、下划线组成。 ## [icon] 模块图标 模块图标,主要用于后台模块管理展示,图标尺寸要求200px * 200px,格式为PNG ## [intro] 模块简介 对模块进行简单的描述,以便使用者能快速的了解该模块的功能信息。 ## [author] 模块作者 指模块开发者的名称(姓名或昵称均可) ## [author_url] 作者URL 开发者的网站地址,必须是完整的网站链接地址。 例:http://www.hisiphp.com ## [version] 模块版本号 >[info] 格式 1.0.0 模块版本号一定要按照要求填写,模块升级的时候,将以此版本号做为对比。 版本号格式采用三段式:主版本号.次版本号.修订版本号。例:1.0.0 主版本号【位数变化:1-99】:当模块出现大更新或者很大的改动,比如整体架构发生变化。此版本号会变化。 次版本号【位数变化:0-999】:当模块功能有新增或删除,此版本号会变化,如果仅仅是补充原有功能时,此版本号不变化。 修订版本号【位数变化:0-999】:一般是 Bug 修复或是一些小的变动,功能上没有大的变化,修复一个严重的bug即发布一个修订版。 ## [module_depend] 模块依赖 有些模块需要依赖于某个或多个模块,此时就必须要填写所依赖的模块信息。 >[info] 格式:[[模块名, 模块标识, 依赖版本, 对比方式]] >说明:模块名、模块标识、依赖版本为必填,对比方式为选填,默认为“=”。 对比方式支持的比较操作符如下: | 操作符 | 含义 | | --- | --- | | <、 lt | 小于 | | <=、 le | 小于等于 | | >、 gt | 大于 | | >=、 ge | 大于等于 | | ==、 =、eq | 等于 | | !=、<>、 ne | 不等于 | >[danger] 注意:比较操作符只支持小写 参考示例: ~~~php // 模块依赖[可选],格式[[模块名, 模块唯一标识, 依赖版本, 对比方式]] 'module_depend' => [ ['user', 'user.hisiphp.module', '1.0.0', '='], ...... ], ~~~ 表示当前模块依赖于user模块,该模块的唯一标识符是user.hisiphp.module,依赖的版本号是1.0.0,版本号对比方式为 等于(=),即等于1.0.0。版本号对比方式为选填,默认为等于(=)。 ## [plugin_depend] 插件依赖 如果你的模块需要依赖于某个或多个插件,此时就必须要填写所依赖的插件信息。 参考示例: ~~~php // 插件依赖[可选],格式[[插件名, 插件唯一标识, 依赖版本, 对比方式]] 'plugin_depend' => [ ['login', 'login.hisiphp.plugins', '1.0.0', '='], ...... ], ~~~ 插件依赖和模块依赖用法类似,请直接参考上面模块依赖的详细说明。 ## [tables] 模块数据表 如果你的模块有用到数据表,则需要在此列出所有的数据表名已方便安装和卸载。 >[danger]模块的数据表命名为了避免与其他模块表名冲突,请参照此格式命名:“表前缀_模块名_控制器名“。 例如:mall模块下面有两张表,hisiphp_mall_goods,hisiphp_mall_products,"hisiphp_"为表前缀,无需填写,具体填写方式如下: ~~~php // 模块数据表[有数据库表时必填,不包含表前缀] 'tables' => [ 'mall_goods',//商品表 'mall_products',// 货品表 ], ~~~ ## [db_prefix] 表前缀 例如:数据表名”hisiphp_mall_goods“,我们将他拆解为3段来理解:”hisiphp_“为表前缀,”mall“为模块名,”goods“为控制器名。拆解后的”hisiphp_“就是我们要得到表前缀。 填写了表前缀后,系统在安装当前模块时,会自动将此表前缀替换成当前系统所设置的表前缀。 ## [hooks] 模块预埋钩子 如果你的模块为了满足各型各色的客户需求,在不同的地方预埋了一些钩子(``非系统钩子``)以方便用户扩展,一定要将预埋的钩子填写到此配置里面,模块在安装的时候,会自动将这些钩子内置到系统的钩子管理列表中。 参考示例如下: ~~~php // 模块预埋钩子[非系统钩子] 'hooks' => [ // '钩子名称(支持字母、数字、下划线)' => '钩子描述', ...... ], ~~~ ## [config] 模块配置 针对当前模块需要一些自定义配置的话,则需要填写此参数。 >[info]格式:['sort' => '排序','title' => '标题','name' => '名称','type' => '类型','options' => '选项','value' => '默认值', 'tips' => '提示'] 各参数设置实例可参考:管理后台->系统->系统功能->配置管理->添加 | 参数 | 含义 | 类型 | 必填 | 说明 | | --- | --- | --- | --- | --- | | sort | 排序 | int | 是 | 无 | | title | 标题 | string | 是 | 2-12个字符 | | name | 字段名称 | string | 是 | 可由字母、数字、下划线组成 | | type | 表单类型 | string | 是 | 下文单独介绍 | | options | 表单选项 | string | 否 | 下文单独介绍 | | value | 默认值 | string/int | 否 | 下文单独介绍 | | tips | 提示 | string | 否 | 关于此配置的提示信息或使用说明,支持HTML标签 | >[info]参数名:type,此参数可选值如下: input,textarea,array,switch,radio,checkbox select,hidden,image,file,date,datetime,time >[info]参数名:options,此参数仅适用于表单类型[type]为单选按钮(radio)、多选按钮(checkbox)、下拉框(select)、开关(switch),具体使用方式如下: ~~~ [radio]单选按钮参考格式: 0:男票 1:女票 ~~~ ~~~ [checkbox]多选按钮参考格式: 1:唱歌 2:跳舞 3:旅游 4:文学 ~~~ ~~~ [select]下拉框参考格式: 1:北京 2:上海 3:广州 4:深圳 ~~~ ~~~ [switch]开关参考格式: 0:关闭 1:开启 ~~~ >[info]参数名:value,表单默认值。 配置类型为单选按钮(radio)、多选按钮(checkbox)、下拉框(select)、开关(switch)时请按如下格式填写,其他类型直接填写字符串即可。 键值:键名 模块配置示例代码如下: ~~~ 'config' => [ [ 'sort' => '100', 'title' => 'AppID', 'name' => 'app_id', 'type' => 'input', 'options' => '', 'value' => '', 'tips' => '开放平台APP ID', ], [ 'sort' => '101', 'title' => 'AppSecret', 'name' => 'app_secret', 'type' => 'input', 'options' => '', 'value' => '', 'tips' => '开放平台APP Secret', ], ], ~~~ 配置后的效果如下: ![](https://box.kancloud.cn/00d8accb31aae6ee76c0b169d210fdce_981x276.png) 模块配置参数已加好,那么如何调用模块配置呢? 模块调用方法与ThinkPHP的配置调用方式一样,同样使用config函数调用。 >[info] 格式:config('module_模块名.配置名[name]') 示例:config('module_test.app_id')