ulthon_admin
欢迎 目录和文件规范 系统架构 命名规范 php-cs-fixer public/static目录规范 app/common目录规范 数据库规范 CURD 命令行 表结构 数据库迁移代码 最佳实践 数据库自动缓存 后台菜单导入导出 权限的用法 table数据表格 cols operat _if titleField field selectList valueParser trueHide fieldFormat templet defaultValue search相关 time defaultSearchValue defaultToolbar init formFullScreen toobar modifyReload 控制器 CURD方法 导出 控制器通用验证 dataBrage向js传递参数 组件控件 select 下拉菜单option拼接 lay-submit paste-text粘贴 multiple-columns editor data-upload上传 tag-input标签输入 property-input动态字段输入 data-date时间控件参数 table-data列表选择器 city-picker城市选择器 copy-text 全局监听组件 data-request data-open 内置定时器 并发模式 重置密码 系统配置 PHP助手函数 sysconfig JS助手函数 checkMobile empty open 弹框 叠加loading getDataBrage getQueryVariable 扩展机制 事件扩展 实现事件 执行事件 事件列表 AdminLayoutRequireAfter LoadMigrationFiles AdminLoginIndex AdminLoginForget AdminLoginType AdminMenuTab AdminLayoutRequireBefore 自动更新 性能优化 精简代码 关闭数据库日志驱动 皮肤 正常 科幻 其他 切换模块时直接切换内容 关闭上传文件注入检测 代码编译原理 接入workerman和命令参数 升级TP6.1 Request的默认过滤 异步引入全局script 线上安装脚本 兼容PHP8.1

ulthon_admin为了定制而生。所以当你用它开启一个项目的时候,不应再需要考虑后续升级的兼容性。这将为您的项目定制开发和优化带来极大的便利。

项目本身的代码量并不多,但是ulthon_admin做了一些通用功能和兼容,可能你不需要这些,这时,你可以选择将这部分代码删掉。

guzzle

ulthon_admin集成了guzzle,因为本项目默认实现了一个定时器,运行之后,每秒会访问配置的链接。这个访问是使用guzzle实现的。他利用了guzzle的并发请求特性,尽可能的提高定时器的性能。

替代方案

去除guzzle

一个简单地替代方案是使用file_get_content代替guzzle访问。

或者封装一个curl的函数

你需要app\common\command\Timer.php修改这个文件,将对guzzle的依赖改成file_get_content的调用方式。

放弃内置定时器

ulthon_admin内置了定时器,如果你不喜欢或者不需要,可以直接删除它,我们会在下面讲到。

删除guzzle依赖

此时可以将guzzle依赖删除了。

composer remove guzzlehttp/guzzle

第三方上传组件

ulthon_admin在默认支持了阿里云七牛云腾讯云三个第三方的上传组件。如果你不需要,完全可以将他们移除。

  • 删除配置项

删除后台中的第三方组件配置app\admin\view\system\config\upload.html

  • 删除composer依赖

你可以删除无用功的第三方组建依赖:

// 删除七牛云上传
composer remove overtrue/flysystem-qiniu 
// 删除阿里云上传
composer remove xxtime/flysystem-aliyun-oss 
// 删除腾讯云上传
composer remove chunpat/flysystem-tencent-cos

另外,你可以删除他们对应的thinkPHP驱动:

extend\think\filesystem\driver         
├─ Alioss.php  
├─ Qiniu.php   
└─ Txcos.php

实际上不需要删除他们,他们都是按需加载的,况且也只有3个文件

内置定时器

ulthon_admin内置了一个定时器。如果不需要,可以这样做:

  • 删除基类控制器
app\common\controller\TimerController.php
  • 删除内置的定时器功能
app\tools\controller\timer
├─ ClearLog.php       
└─ ResetPassword.php
  • 删除命令行文件
app\common\command
├─ timer                 
│  └─ config.php         
└─ Timer.php
  • 删除guzzle

ulthon_admin集成guzzle只是为了定时器,此时可以删除这个依赖了。

composer remove guzzlehttp/guzzle

简易的导出

ulthon_admin内置实现了excel的导出,也因此集成了phpoffice/phpspreadsheet依赖,如果不需要导出表格,只需要csv,则可以参考下面的步骤删除代码:

  • 重构导出类的代码

将下面代码中的导出,去掉对phpspreadsheet的依赖

app\common\tools\ExportTools.php
  • 删除依赖
composer remove phpoffice/phpspreadsheet

不要数据库迁移

ulthon_admin通过topthink/think-migration安装数据库,这可以兼容更多的数据库(mysql,sqlite等等),如果你正在做的是一款定制产品,不存在分发安装的场景,并且不需要兼容更多的数据库,则可以在安装完ulthon_admin后删除迁移工具。

虽然安装程序(和ThinkPHP)支持多款数据库,但自动生成CURD仍然仅支持mysql

  • 删除迁移文件
database                                    
├─ migrations                               
│  ├─ 20220419022952_system_admin.php       
│  ├─ 20220419030557_system_auth.php        
│  ├─ 20220419031101_system_auth_node.php   
│  ├─ 20220419031527_system_config.php      
│  ├─ 20220419032028_system_menu.php        
│  ├─ 20220419032642_system_node.php        
│  ├─ 20220419033507_system_quick.php       
│  ├─ 20220419034810_system_uploadfile.php  
│  ├─ 20220419102226_debug_log.php          
│  ├─ 20220419102635_mall_cate.php          
│  ├─ 20220419102916_mall_goods.php         
│  └─ 20220709061205_mall_tag.php           
└─ seeds                                    
   └─ InitBaseAdminData.php
  • 删除安装流程
service                            
├─ initAdminData                   
│  ├─ MallCate.php                 
│  ├─ MallGoods.php                
│  ├─ MallTag.php                  
│  ├─ SystemAuth.php               
│  ├─ SystemAuthNode.php           
│  ├─ SystemConfig.php             
│  ├─ SystemMenu.php               
│  ├─ SystemNode.php               
│  └─ SystemQuick.php                
├─ InitAdminService.php
  • 删除依赖
composer remove topthink/think-migration

原文标题:精简代码

原文文档:ulthon_admin

原文地址:https://doc.ulthon.com/read/augushong/ulthon_admin/62f61e413b2c0/zh-cn/2.x.html

原文平台:奥宏文档

2.x