Files
ulthon_admin/extend/think/UlthonAdminService.php
augushong 9669bc61a3 feat(tools): 添加 Ulthon Admin 前端静态构建工具
- 新增 `tools:ua:build` 命令,用于合并前端模块文件
- 添加构建配置文件 `ua.build.json` 定义源文件和输出
- 引入基础服务类 `ToolsUaServiceBase` 处理路径和配置读取
- 创建命令基类 `ToolsUaBuildBase` 实现文件合并逻辑
- 注册新命令到 UlthonAdminService 服务容器
- 提供完整的模块化前端代码结构(core、common、table、listen、api、utils)
- 添加详细的使用说明文档 README.md
- 包含示例 Scheme 文件展示功能
2026-01-30 22:24:44 +08:00

102 lines
2.9 KiB
PHP

<?php
namespace think;
use app\common\command\admin\MigrateFileData;
use app\common\command\tools\db\ToolsDbCount;
use app\common\command\tools\db\ToolsDbDesc;
use app\common\command\tools\db\ToolsDbExecute;
use app\common\command\tools\db\ToolsDbInfo;
use app\common\command\tools\db\ToolsDbQuery;
use app\common\command\tools\db\ToolsDbTable;
use app\common\command\tools\ua\ToolsUaBuild;
use app\common\command\Test;
use app\common\event\AdminLoginSuccess\LogEvent;
use app\common\event\AdminLoginType\DemoEvent;
use app\common\event\AdminMenuTab\DemoEvent as AdminMenuTabDemoEvent;
use app\common\provider\ExceptionHandle;
use app\common\provider\Request;
use app\common\provider\View;
use think\app\Service as AppService;
use think\captcha\CaptchaService;
use think\facade\App;
use think\migration\Service as MigrateService;
class UlthonAdminService extends Service
{
public function boot()
{
// 绑定系统事件
$event_listen = [
'AppInit' => [],
'HttpRun' => [],
'HttpEnd' => [],
'LogLevel' => [],
'LogWrite' => [],
'AdminLoginSuccess' => [
LogEvent::class,
],
'AdminLoginType' => [
DemoEvent::class,
],
'AdminMenuTab' => [
AdminMenuTabDemoEvent::class,
],
];
$this->app->event->listenEvents($event_listen);
// 注册验证码服务
$this->app->register(CaptchaService::class);
// 注册多应用服务
$this->app->register(AppService::class);
// 注册数据库迁移服务
$this->app->register(MigrateService::class);
// 绑定命令行
$this->commands([
Test::class,
MigrateFileData::class,
ToolsDbQuery::class,
ToolsDbExecute::class,
ToolsDbTable::class,
ToolsDbInfo::class,
ToolsDbDesc::class,
ToolsDbCount::class,
ToolsUaBuild::class,
]);
// 绑定标识容器
$provider_default = [
'think\Request' => Request::class,
'think\exception\Handle' => ExceptionHandle::class,
'think\View' => View::class,
];
$provider_setting = include App::getRootPath() . '/app/provider.php';
if (isset($provider_setting['think\App'])) {
unset($provider_setting['think\App']);
}
$provider = array_merge($provider_default, $provider_setting);
$this->app->bind($provider);
// 导入系统中间件
$middleware = [
// 全局请求缓存
// \think\middleware\CheckRequestCache::class,
// 多语言加载
// \think\middleware\LoadLangPack::class,
// Session初始化
100 => middleware\SessionInit::class,
];
$this->app->middleware->import($middleware);
}
}