每个模块下面都会自动生成一个模块信息文件(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')