我这边创建插件,安装卸载的时候出现一个小小bug,具体情况如下;
1、通过命令创建
php webman app-plugin:create foo // 创建应用插件
2、创建的目录中,api/install.php
安装采取的读取key作为标识的方式添加菜单
public static function install($version)
{
// 导入菜单
Menu::import(static::getMenus());
}
卸载采取的是读取name作为标识的方式卸载菜单;
public static function uninstall($version)
{
// 删除菜单
foreach (static::getMenus() as $menu) {
Menu::delete($menu['name']);
}
}
而我查看 webman-admin 里面配置菜单都只用到了key这个标识;
[
'title' => '数据库',
'key' => 'database',
'icon' => 'layui-icon-template-1',
'weight' => 1000,
'type' => 0,
'children' => [
[
'title' => '所有表',
'key' => 'plugin\\admin\\app\\controller\\TableController',
'href' => '/app/admin/table/index',
'type' => 1,
'weight' => 800,
]
]
],
那么我也按照这个规则,再我的menu里面添加菜单
然而安装的时候能够成功,卸载的时候就会失败,提示name找不到
我暂时的处理方式是 menu.php 里面 key和name都 作为相同内容的标识符进行; 还有一种方式是,修改创建应用插件的时候,进行key或者name统一
"workerman/webman-framework": 1.4.3
"webman/admin": 0.6.0
"webman/console": 1.2
你先本地
改成
吧,这个问题下个webman/console 版本修复
好的
发新版了,
composer require webman/console ^1.2.25
效率真高,后面这个removeUnnecessaryMenus方法没有影响吧?