amis-admin 基于amis 的 admin CRUD

為了后期更好的維護(hù),最新 2.0 版本已修改包名,請(qǐng)注意切換
webman-tech/amis-admin
amis For webman quick use ~
簡(jiǎn)介
借用 amis 的 json 配置化能力,提供給 webman 快速搭建管理后臺(tái)的能力
只做最基礎(chǔ)的增刪改查封裝,具體的業(yè)務(wù)都不實(shí)現(xiàn)
特性:
- 無依賴:不依賴第三方組件,Laravel 系和 TP 系都能用(目前建議 laravel,tp 的實(shí)現(xiàn)未做)
- 無侵入:不設(shè)定任何初始 sql,業(yè)務(wù)無關(guān)
- 無前端:基本不需要考慮前端,熟悉 amis 和 php 即可
- 高擴(kuò)展:amis 的各種組件支持全局控制和頁面級(jí)控制
- 支持多應(yīng)用模式:可以支持作用于類似 admin/agent/user 多后臺(tái)形式
局限:
- 功能簡(jiǎn)單:沒有admin帳號(hào)體系,沒有菜單管理,沒有權(quán)限管理
安裝
composer require webman-tech/amis-admin
要求 webman > 1.4 且關(guān)閉了 controller_reuse(原因:controller_reuse 導(dǎo)致成員變量會(huì)被緩存,AmisSourceController 需要使用到成員做單個(gè)請(qǐng)求的緩存)
使用
參考使用:https://github.com/krissss/webman-basic
注意: Amis 實(shí)際上是前后端分離的框架,即數(shù)據(jù)接口是數(shù)據(jù)接口,頁面配置(json)是頁面配置, 因此不能用常規(guī)的 PHP 框架下的 admin 框架(如 laravel-admin 等)來思考
AmisSourceController
是一個(gè)基礎(chǔ)的 CRUD 資源控制器基類,負(fù)責(zé)控制頁面結(jié)構(gòu),操作按鈕權(quán)限等
Repository
AmisSourceController 中使用的 repository 的方法封裝,負(fù)責(zé)提供對(duì)數(shù)據(jù)的增刪改
Component
Amis 組件的封裝,目前僅封裝了常用的組件類型和屬性, 但 amis 的所有組件都可以通過 Component::make(['type' => 'xxx'])
來配置
所有組件也都支持 schema()
方法來覆蓋(支持嵌套覆蓋)參數(shù)
組件支持 Controller 級(jí)別和全局(config中)修改默認(rèn)配置參數(shù)
多應(yīng)用支持
-
復(fù)制一份
config/plugin/webman-tech/amis-admin/amis.php
到config/plugin/webman-tech/amis-admin/amis-user.php
-
繼承
AmisModuleChangeMiddleware
實(shí)現(xiàn)一個(gè)無__construct
的中間件(因?yàn)?webman 目前還不支持中間件注冊(cè)使用 __construct),例如:
<?php
namespace app\middleware;
use WebmanTech\AmisAdmin\Middleware\AmisModuleChangeMiddleware;
class AmisModuleChange2User extends AmisModuleChangeMiddleware
{
public function __construct()
{
parent::__construct('amis-user');
}
}
- 在響應(yīng)的路由或全局中間件中引入
AmisModuleChange2User