模块开发

模块开发介绍

在开发模块之前,请在模块市场自行装置《开发示例程序》,该示例中涵盖了简直所有模块开发标准和技巧。

开发示例程序: https://modstart.com/m/Demo

开发示例程序会不断更新,请随时查看最新的开发示例程序。

模块开发入门

第一步,下载模块开发助手

模块开发助手能够极大效率的进步模块开发效率,通过 https://modstart.com/m/ModuleDeveloper 下载。

第二步,应用模块开发助手创立模块

拜访 系统管理 → 模块开发助手,通过常用工具创立模块

第三步,实现模块代码开发

第二步会依据填写的模块根本信息实现模块的创立,并且生成一些示例代码,通过批改和欠缺模块代码,实现模块的性能开发

第四步,模块打包上传到模块市场

如果您开发的模块须要上传分享到模块市场,依照如下步骤实现模块分享。

  1. 注册ModStart账号:拜访 https://modstart.com 实现账号注册
  2. 实名认证:在用户核心实现用户实名认证
  3. 创立模块:认证实现后,在用户核心拜访开发者核心,实现模块的创立
  4. 打包上传:返回到本地的模块开发助手,登录ModStart账号,在对应开发的模块中点击公布
  5. 模块审核上线:公布胜利后,须要后盾审核模块,实现审核后模块即可显示在模块市场。

模块目录介绍

模块具体目录介绍

SomeName├── Admin                                → 后盾治理├── Api                                  → API接口├── Constant                             → 常量├── Core                                 → 外围资源│     └── ModuleServiceProvider.php      → 模块外围ServiceProvider,会主动被零碎加载├── Docs                                 → 模块文档目录│     ├── doc                            → 模块应用文档│     ├── module                         → 模块阐明文档│     └── release                        → 模块Release日志├── Migrate                              → 模块数据库迁徙文件├── Util                                 → 模块工具包├── View                                 → 模块视图├── Web                                  → 模块前台 ├── config.json                          → 模块配置文件└── resources                            → 模块其余资源文件

配置文件 config.json

配置文件是一个非法的JSON,请勿在JSON中蕴含正文,以下为了参数含意会在JSON中蕴含正文

{  // 模块惟一标示,请应用 SomeExampleName 首字母大写的驼峰命名形式  // 如果您的模块前期须要公布到模块市场,在开发前请先创立模块,避免与别人抵触  "name": "Demo",  // 模块文字说明  "title": "开发示例程序",  // 模块类型,能够蕴含多个,目前反对以下值  // PC:        电脑版  // Mobile:    手机H5  // App:       手机APP  // MiniApp:   小程序  // WxMiniApp: 微信小程序  // Theme:     模板主题  // Admin:     后盾治理  "types": [    "PC",    "Mobile"  ],  // 以后模块版本号,请应用 主版本号.次版本号.修复版本号 的格局  // 大的迭代请降级主版本号,惯例次二代降级次版本号,Bug修复降级修复版本号  "version": "1.2.0",  // 模块依赖,反对多个  "require": [    // 依赖 Vendor 模块任何版本    "Vendor",    // 依赖 Abc 模块任何版本     "Abc:*",    // 依赖 Abc 模块大于等于1.1.0的版本    "Abc:>=1.1.0",    // 依赖 Abc 模块大于1.1.0的版本    "Abc:>1.1.0",    // 依赖 Abc 模块小于等于1.1.0的版本     "Abc:<=1.1.0",    // 依赖 Abc 模块小于1.1.0的版本     "Abc:<1.1.0",    // 依赖 Abc 模块1.1.0的版本,其余任何版本都不匹配    "Abc:==1.1.0"  ],  // 模块依赖的 ModStart 外围版本,能够通过 \ModStart\ModStart::$version 获取ModStart外围版本号  "modstartVersion": "*",  // 模块作者  "author": "ModStart",  // 模块形容  "description": "ModStart开发示例程序",  // 模块可配置项,可在程序中通过如下办法获取配置信息  // \ModStart\Module\ModuleManager::getModuleConfig('模块名','配置名')  "config": {    // 定义一个名称为 testText 的文本参数    "testText": [      [        "text",        "文字参数"      ]    ],    // 定义一个名称为 testEnable 的开关    "testEnable": [      [        "switch",        "性能启用"      ]    ],    // 定义一个名称为 testSelect 的下拉选项,蕴含两个选项    "testSelect": [      [        "select",        "下拉抉择"      ],      [        "options",        {          "key1": "选项1",          "key2": "选项2"        }      ]    ]  }}

Web前台开发

前台代码 Routes、Controller 都应放在 Web 目录中。

Admin后盾开发

前台代码 Routes、Controller 都应放在 Admin 目录中。

注册后盾菜单

Core/ModuleServiceProvider.php 中配置,通过如下形式注册菜单:

<?phpAdminMenu::register(function(){    return [       'menu' => [           [               'title' => '一级菜单',               'icon' => 'tools',               'sort' => 150,               'children' => [                   [                       'title' => '二级菜单',                       'url' => '\XxxController@index',                   ]               ]           ]       ]   ];});

ModStart零碎依照如下雷同的规定进行菜单合并:

  • 一级菜单(title+icon+sort)
  • 二级菜单(title)

菜单应用标准

咱们强烈建议您依照零碎举荐的形式组织菜单防止用户装置多个模块后零碎菜单变得凌乱。
  • 大的业务功能模块能够插入一级菜单,用于治理模块波及的业务性能
  • 物料类、工具类的模块应用二级或三级菜单
  • 菜单由上至下应遵循应用频率递加的个性
目录内容排序(sort值)图标(icon)阐明
用户治理100users用户治理模块
\-- 用户治理
\-- ...
物料治理200description零碎根底物料治理
\-- 导航配置
\-- 文章治理
\-- 友情链接
\-- ...
性能设置300tools模块业务性能相干的设置
\-- 用户设置
\-- ...
零碎设置400cog技术性能相干设置
\-- 根底配置
\-- 短信设置
\-- 领取设置
\-- ...
后盾权限500user-o管理员、角色、治理日志
\-- 治理角色
\-- 治理账号
\-- 治理日志
运维工具600magic-wand零碎运维阶段功能模块
\-- ...
系统管理700code-alt零碎性能治理(通常用于开发阶段)
\-- 模块治理

Api接口开发

前台代码 Routes、Controller 都应放在 Api 目录中。

OpenApi凋谢接口开发

前台代码 Routes、Controller 都应放在 OpenApi 目录中。

开发技巧

Api接口代码的复用

为了最大限度的麻利开发,能够在 WebOpenApiAdmin 中最大水平的复用 Api 代码。