模組開發介紹
在開發模組之前,請在模組市場自行安裝《開發示例程式》,該示例中涵蓋了幾乎所有模組開發規範和技巧。
開發示例程式: modstart.com/m/Demo
開發示例程式會不斷更新,請隨時檢視最新的開發示例程式。
模組開發入門
第一步,下載模組開發助手
模組開發助手可以極大效率的提高模組開發效率,通過 modstart.com/m/ModuleDeveloper 下載。
第二步,使用模組開發助手建立模組
訪問 系統管理 → 模組開發助手,通過常用工具建立模組
第三步,完成模組程式碼開發
第二步會根據填寫的模組基本資訊完成模組的建立,並且生成一些示例程式碼,通過修改和完善模組程式碼,完成模組的功能開發
第四步,模組打包上傳到模組市場
如果您開發的模組需要上傳分享到模組市場,按照如下步驟完成模組分享。
- 註冊ModStart賬號:訪問 modstart.com 完成賬號註冊
- 實名認證:在使用者中心完成使用者實名認證
- 建立模組:認證完成後,在使用者中心訪問開發者中心,完成模組的建立
- 打包上傳:返回到本地的模組開發助手,登入ModStart賬號,在對應開發的模組中點選發布
- 模組稽核上線:釋出成功後,需要後臺稽核模組,完成稽核後模組即可顯示在模組市場。
模組目錄介紹
模組詳細目錄介紹
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
中配置,通過如下方式註冊選單:
<?php
AdminMenu::register(function(){
return [
'menu' => [
[
'title' => '一級選單',
'icon' => 'tools',
'sort' => 150,
'children' => [
[
'title' => '二級選單',
'url' => '\XxxController@index',
]
]
]
]
];
});
ModStart系統按照如下相同的規則進行選單合併:
- 一級選單(title+icon+sort)
- 二級選單(title)
選單使用規範
我們強烈建議您按照系統推薦的方式組織選單避免使用者安裝多個模組後系統選單變得混亂。
- 大的業務功能模組可以插入一級選單,用於管理模組涉及的業務功能
- 物料類、工具類的模組使用二級或三級選單
- 選單由上至下應遵循使用頻率遞減的特性
目錄內容 | 排序(sort值) | 圖示(icon) | 說明 |
---|---|---|---|
使用者管理 | 100 | users | 使用者管理模組 |
|– 使用者管理 | |||
|– … | |||
物料管理 | 200 | description | 系統基礎物料管理 |
|– 導航配置 | |||
|– 文章管理 | |||
|– 友情連結 | |||
|– … | |||
功能設定 | 300 | tools | 模組業務功能相關的設定 |
|– 使用者設定 | |||
|– … | |||
系統設定 | 400 | cog | 技術功能相關設定 |
|– 基礎配置 | |||
|– 簡訊設定 | |||
|– 支付設定 | |||
|– … | |||
後臺許可權 | 500 | user-o | 管理員、角色、管理日誌 |
|– 管理角色 | |||
|– 管理賬號 | |||
|– 管理日誌 | |||
運維工具 | 600 | magic-wand | 系統運維階段功能模組 |
|– … | |||
系統管理 | 700 | code-alt | 系統功能管理(通常用於開發階段) |
|– 模組管理 |
Api介面開發
前臺程式碼 Routes、Controller 都應放在 Api
目錄中。
OpenApi開放介面開發
前臺程式碼 Routes、Controller 都應放在 OpenApi
目錄中。
開發技巧
Api介面程式碼的複用
為了最大限度的敏捷開發,可以在 Web
、OpenApi
、Admin
中最大程度的複用 Api
程式碼。
本作品採用《CC 協議》,轉載必須註明作者和本文連結