Compare commits

...
41 Commits
Author SHA1 Message Date
OG Backup 911ef2ce2c Merge branch 'main' of https://git.20031227.de5.net/og/Socket 2026-06-14 14:21:35 +08:00
OG Backup 2cd31285f0 backup: 线上最终版本全量备份
包含所有线上运行的改动:
- 荷官端倒计时卡顿修复(CountdownService TTL+10/前端watchdog)
- 停止下注debounce防重复(8个handle.js)
- 洗码量规则重写(单边/双边/开和不计/百家乐+龙虎)
- 龙虎和局不杀庄闲(全额退回)
- 日志系统(Logger工具类/日志查看/清理脚本)
- 好路提醒异常处理(WaybillRemindService try-catch)
- 扫牌器连接改进(ScanConnectService)
- 牛牛/三卡开牌修复
- .gitignore更新/.DS_Store清理
2026-06-14 14:20:43 +08:00
fengshao1227 73a8847ceb docs: 洗码量计算规则文档(客户2026-05-28确认的完整规则) 2026-05-29 06:14:20 +08:00
fengshao1227 e44d645547 fix: 洗码量按客户完整规则重写
百家乐+龙虎:
- 单边洗码(type_xima=2):输口计洗码,开和不计
- 双边洗码(type_xima=1):所有投注都计洗码,开和不计(庄闲退回部分除外)
- 龙虎和局不杀龙虎,全额退回
2026-05-29 05:37:40 +08:00
fengshao1227 c3621121ca fix: 龙虎洗码量改为所有输口之和,和局通杀龙虎计入洗码 2026-05-28 18:04:53 +08:00
fengshao1227 477ca7f6c9 fix: 百家乐洗码量改为所有输口投注额之和
原逻辑只算庄/闲的投注额,对子、和、幸运6、大小的输口不计入。
改为:所有输的位置的投注额都计入洗码量(庄、闲、和、庄对、闲对、幸运6、大小)。
2026-05-28 18:03:35 +08:00
testadmin 8edc071997 fix: 倒计时卡住根因修复 — Redis TTL缓冲+前端watchdog兜底
根因:CountdownService用while(sleep(1))阻塞循环推送倒计时,
Redis key TTL=wait_time,3台同时运行时worker争用导致循环慢于
Redis过期时间,key先过期→循环中断→倒计时冻结在当前秒数。

修复:
1. Redis TTL加10秒缓冲(waitTime+10),防止key提前过期
2. 前端加watchdog兜底:服务端2秒没推送就本地继续倒计时
2026-05-19 14:25:48 +08:00
testadmin aa74a6edc1 fix: 荷官端卡住根因修复 — endBet防抖+状态同步+WaybillRemind越界
1. end_bet_error翻译从'停止成功'改为'已停止下注'(误导荷官以为操作成功)
2. endBet()加2秒防抖,防止连按Enter导致重复请求
3. Numpad 0加状态守卫,只在bet_status=1时才调endBet
4. endBet失败时前端自动同步服务端bet_status,不再弹错误框
5. 后端end_bet_error响应附带当前bet_status供前端同步
6. WaybillRemindService路子珠pattern检测加try-catch,消除每日59次offset -1错误
2026-05-19 00:28:02 +08:00
testadmin f3fb7628ab fix: Enter key at bet_status=1 now calls endBet() instead of silently ignoring
When endBet fails on server, client stays stuck at status=1 where Enter
key did nothing. Dealer had to void the round to recover. Now Enter at
status=1 triggers endBet(), allowing manual recovery without voiding.
2026-05-18 21:06:07 +08:00
testadmin cd149d5478 fix: add 3s debounce to opening() across all 8 dealer JS files 2026-05-17 12:16:54 +08:00
testadmin 3533758405 fix: 'Please hold on' → '请稍等' across all 8 dealer JS files 2026-05-17 12:13:50 +08:00
testadmin 444235b393 style: dragon 7 bead road circle border lineWidth 3→4 2026-05-16 16:41:07 +08:00
testadmin 3bac9960b8 refine: normalize bet log names and init_table_fail level 2026-05-14 11:50:59 +08:00
testadmin a180fe8385 feat: complete logging audit - fill all gaps
- Filter noisy audio play() errors from frontend log
- Add logging to ALL 8 ToBet services (was only Baccarat)
- Add InitTableService logging (Sumday/Boot/NumberTab creation & failure)
- Add logview.sh for quick log viewing
- Add log_cleanup.sh for 30-day rotation
2026-05-14 11:49:36 +08:00
testadmin 7fe15a0d50 fix: unify log path to runtime/log/ for all contexts
- Logger: use root_path()/runtime/log/ instead of runtime_path()/log/
  (runtime_path() returns app-specific path in multi-app mode)
- Remove debug output from Log controller
2026-05-14 11:44:57 +08:00
testadmin cbe48e938a debug: return runtime path and data keys 2026-05-14 11:43:53 +08:00
testadmin 8ac5d159ad fix: remove global route that was intercepting log/report controller 2026-05-14 11:42:50 +08:00
testadmin b733eab816 debug: add error catching to log endpoint 2026-05-14 11:41:58 +08:00
testadmin df6aa119a0 fix: use getContent() for JSON body parsing in log endpoint 2026-05-14 11:40:54 +08:00
testadmin 966b3133bf fix: parse JSON body in log report endpoint 2026-05-14 11:38:59 +08:00
testadmin 817e262140 fix: frontend error reporting route - bypass auth middleware
- Create handle/controller/Log.php (no auth) for dealer error reports
- Update error-report.js URL: /index/log_report → /log/report
- index app already has Log controller at /log/report
2026-05-14 11:37:58 +08:00
testadmin 3766975897 chore: remove .magi from tracking 2026-05-14 11:35:42 +08:00
testadmin b518578266 feat: complete logging coverage - all services + frontend route fix
Backend additions:
- UserConnectService, ScanConnectService: connection logging
- ToBetCommonService, ToBetBaccaratService: bet rejection/success logging
- ResetBoot, ResetNumberTab, ResetBaccarat, ResetDt: reset event logging
- handle/Index: log_report controller method (fixes route for dealer端)
- index/Log: log_report controller for player端 (no auth required)

Frontend:
- error-report.js: fix report URL to /index/log_report (matches handle controller)

Total: 21 backend files with 60 Logger calls across 5 categories
2026-05-14 11:35:34 +08:00
testadmin d77c6beac7 feat: add logging module for backend + frontend error reporting
Backend:
- New Logger utility (app/utils/Logger.php) with category-based log files
  (connect/game/bet/error/frontend under runtime/log/)
- Log WebSocket connect/close events (WsConnect, WsClose)
- Log dealer auth success/failure (SpaceConnectService)
- Log all game events: startBet, endBet, changeBoot, opening for all 7 game types
- Log unhandled exceptions (ExceptionHandle)
- Separate SQL/error logs via apart_level, enable realtime_write for Swoole
- Add /log/report POST endpoint for frontend error ingestion

Frontend:
- New error-report.js with window.onerror + unhandledrejection auto-reporting
- Added to all 12 dealer HTML templates
- Bump VERSION_V to v10.1.0
2026-05-14 11:28:33 +08:00
testadmin 710bb45614 fix: handle.js syntax error causing niuniu dealer page crash
- Line 1953: `ctb.{strokeStyle = "#ff2202";}` → `ctb.strokeStyle = "#ff2202";`
  This typo from Dragon 7 bead road styling broke the entire JS parser
- Bump VERSION_V to v10.0.9 to force browser cache refresh
2026-05-14 11:15:02 +08:00
testadmin 0f571f21ec fix: 修改结果龙7归庄、熊8归闲(之前写反了) 2026-05-13 19:22:47 +08:00
testadmin ef66019c29 feat: 修改上局结果支持幸运6/龙7/熊8
- tab_b.html: 下拉菜单加6/7/8选项(5段格式 opening-pair-luck_six-dragon_seven-panda_eight)
- handle_b.js: retreated()解析并传dragon_seven/panda_eight
- NumberTab: resetBaccarat更新luck_six/dragon_seven/panda_eight字段
- ResetBaccaratService: 比较条件加上三个字段
2026-05-13 19:09:43 +08:00
testadmin 3e1896ea1c feat: 龙7红圈加粗 2026-05-13 18:41:05 +08:00
testadmin abf608582a chore: 版本号v10.0.7强制刷新荷官端缓存 2026-05-13 18:16:09 +08:00
testadmin a0a4ca396f feat: 龙7路子珠描边改红色圈 2026-05-13 16:10:18 +08:00
testadmin 139d89e029 fix: showPngDt改用#resultAreaImg输出HTML(龙虎结果不显示的根因) 2026-05-11 17:07:15 +08:00
testadmin 8de661ad8b fix: resize时ludan未初始化导致CanvasTable崩溃,加空值保护 2026-05-11 16:03:48 +08:00
testadmin cf9800b74a fix: common.php 强制加载中文语言包,解决Swoole环境lang()返回key的问题 2026-05-11 15:54:12 +08:00
testadmin 081f6f111f revert: 回滚 extend_list 配置,app() 在 config 阶段未初始化会导致异常 2026-05-11 15:16:13 +08:00
testadmin ce03e0bb15 fix: extend_list强制加载语言包,确保Swoole环境下也能加载翻译 2026-05-11 15:00:38 +08:00
testadmin e9b3fde30e fix: lang文件放到app/lang/目录(TP6初始化从appPath=app/加载,不是app/handle/) 2026-05-11 14:54:17 +08:00
testadmin 7c1fee312f fix: 添加荷官端中文语言包(从Pro复制),防止翻译丢失 2026-05-11 14:37:07 +08:00
testadmin 71d28ef630 chore: .gitignore 加入 vendor/runtime/.DS_Store,清理 git 索引 2026-05-11 14:13:05 +08:00
testadmin 5b74fee7a8 fix: 龙虎手动模式(tab_dt.html)补上#resultAreaTimer/#resultAreaImg 2026-05-11 14:05:30 +08:00
testadmin ba687cfb57 fix: 所有游戏荷官端统一改造倒计时/结果显示
- handle.js: 移除所有.countdown操作,改用#resultAreaTimer
- handle.js: showPng/showPngDt改为HTML文字(庄对红/闲对蓝)
- common.css: 加.countdown/.result-box隐藏规则
- tab_nn/tab_knn/tab_toning/tab_b_auto/tab_dt_auto: 加#resultAreaTimer/#resultAreaImg
- 版本号 v10.0.4 → v10.0.5
2026-05-11 14:02:31 +08:00
testadmin 207f742770 fix: 开牌结果改用HTML文字显示,庄对红色/闲对蓝色
- showPng()不再用PNG图片,改为HTML文字渲染
- 庄对永远红色(#b20a00),闲对永远蓝色(#0543bc)
- 版本号 v10.0.3 → v10.0.4
2026-05-06 15:48:03 +08:00
939 changed files with 1644 additions and 123528 deletions
Vendored
BIN
View File
Binary file not shown.
Executable
+1
View File
@@ -0,0 +1 @@
APP_DEBUG=true␍␍[APP]␍DEFAULT_TIMEZONE=Asia/Shanghai␍␍[DATABASE]␍TYPE=mysql␍HOSTNAME=127.0.0.1␍DATABASE=tnt_game␍USERNAME=root␍PASSWORD=shuijizai720␍HOSTPORT=3306␍CHARSET=utf8␍DEBUG=true␍␍[LANG]␍default_lang=zh-cn␍␍[SYSTEM]␍WEBSOCKET=ws.poker4u.club␍PROTOCOL=https␍LOGO_PATH=/static/logo/fop_180_180.png␍PLAYER=https://i.55player.com/zb.html␍dt_half = 1␍SB_SERVER=http://192.168.6.32:8080␍␍[SWOOLE]␍HOST=127.0.0.1␍PORT=8082␍DAEMONIZE=false␍␍[DOMAIN]␍CONSOLE=cz.poker4u.club␍BET=bet.poker4u.club
+4
View File
@@ -1 +1,5 @@
.ace-tool/
.DS_Store
runtime/
vendor/
.magi/
BIN
View File
Binary file not shown.
+7 -1
View File
@@ -36,7 +36,13 @@ class ExceptionHandle extends Handle
*/
public function report(Throwable $exception): void
{
// 使用内置的方式记录异常日志
if (!$this->isIgnoreReport($exception)) {
\app\utils\Logger::error(\app\utils\Logger::CAT_ERROR, $exception->getMessage(), [
'file' => $exception->getFile(),
'line' => $exception->getLine(),
'trace' => substr($exception->getTraceAsString(), 0, 2000),
]);
}
parent::report($exception);
}
+4 -1
View File
@@ -3,7 +3,10 @@
//应用公共文件
// 版本号
define('VERSION_V','?ver=v10.0.3');
define('VERSION_V','?ver=v10.1.1');
// 强制加载中文语言包
\think\facade\Lang::load(__DIR__ . '/lang/zh-cn.php');
// 加密秘钥
const UC_AUTH_KEY = 'L=<z|6aMF8s.Z_CE~K)e}c[VuG9hlJ#gp02t"1&`';
+18
View File
@@ -65,6 +65,24 @@ class Index extends Common{
//View::assign('localSbServer',Env::get('system.SB_SERVER'));
View::assign('localSbServer', $tableInfo['media_near_rtmp']); // 无用的字段来作为本地识别设备IP
}
public function log_report(): Json
{
if (!Request::instance()->isPost()) return json(['status' => 0]);
$data = Request::instance()->post();
\app\utils\Logger::error(\app\utils\Logger::CAT_FRONTEND, $data['message'] ?? 'unknown', [
'source' => $data['source'] ?? 'unknown',
'type' => $data['type'] ?? 'error',
'stack' => isset($data['stack']) ? substr($data['stack'], 0, 2000) : '',
'file' => $data['file'] ?? '',
'url' => $data['url'] ?? '',
'line' => $data['line'] ?? '',
'col' => $data['col'] ?? '',
'ua' => Request::instance()->header('user-agent', ''),
'ip' => Request::instance()->ip(),
]);
return json(['status' => 1]);
}
function get_lang(): Json
{
if (!Request::instance()->isPost()) return json();
+36
View File
@@ -0,0 +1,36 @@
<?php
declare (strict_types = 1);
namespace app\handle\controller;
use think\facade\Request;
use think\response\Json;
class Log
{
public function report(): Json
{
if (!Request::instance()->isPost()) return json(['status' => 0]);
$data = Request::instance()->post();
if (empty($data)) {
$raw = Request::instance()->getContent();
$data = json_decode($raw, true) ?: [];
}
if (empty($data)) {
$raw2 = file_get_contents('php://input');
$data = json_decode($raw2, true) ?: [];
}
\app\utils\Logger::error(\app\utils\Logger::CAT_FRONTEND, $data['message'] ?? 'unknown', [
'source' => $data['source'] ?? 'unknown',
'type' => $data['type'] ?? 'error',
'stack' => isset($data['stack']) ? substr($data['stack'], 0, 2000) : '',
'file' => $data['file'] ?? '',
'url' => $data['url'] ?? '',
'line' => $data['line'] ?? '',
'col' => $data['col'] ?? '',
'ua' => Request::instance()->header('user-agent', ''),
'ip' => Request::instance()->ip(),
]);
return json(['status' => 1]);
}
}
@@ -26,16 +26,58 @@ return [
'player_pair' => '闲对',
'both_pair' => '庄闲对',
'pair' => '对子',
'big' => '大',
'small' => '小',
'dragon' => '龙',
'tiger' => '虎',
'win_6' => '赢6',
'is_win_6' => '是否赢6',
'luck_6' => '幸运6',
'commission' => '抽佣',
'free_commission' => '免佣',
'round_host' => '本局为庄家',
'banker_full' => '庄',
'player_full' => '闲',
'tie_full' => '和',
'banker_pair_full' => '庄对',
'player_pair_full' => '闲对',
'both_pair_full' => '庄闲对',
'dragon_full' => '龙',
'tiger_full' => '虎',
'player_1' => '闲1',
'player_2' => '闲2',
'player_3' => '闲3',
'player_1_flat' => '闲1平倍',
'player_1_double' => '闲1翻倍',
'banker_player_1_flat' => '庄(闲1)平倍',
'banker_player_1_double' => '庄(闲1)翻倍',
'player_2_flat' => '闲2平倍',
'player_2_double' => '闲2翻倍',
'banker_player_2_flat' => '庄(闲2)平倍',
'banker_player_2_double' => '庄(闲2)翻倍',
'player_3_flat' => '闲3平倍',
'player_3_double' => '闲3翻倍',
'banker_player_3_flat' => '庄(闲3)平倍',
'banker_player_3_double' => '庄(闲3)翻倍',
'bull_0' => '无牛',
'bull_1' => '牛一',
'bull_2' => '牛二',
'bull_3' => '牛三',
'bull_4' => '牛四',
'bull_5' => '牛五',
'bull_6' => '牛六',
'bull_7' => '牛七',
'bull_8' => '牛八',
'bull_9' => '牛九',
'bull_bull' => '牛牛',
'5_bulls' => '五公',
'yes' => '是',
'no' => '否',
'online_number' => '在线人数',
'bet_amount' => '本局下注金额',
'wait_For_Opening' => '停止下注-等待开盘',
'point' => '点',
'void' => '已作废',
'next' => '下一局',
'disclaimer' => '路牌资料仅供参考,如有错漏。本公司概不负责',
@@ -165,6 +207,9 @@ return [
'game' => '游戏',
'baccarat' => '百家乐',
'dt' => '龙虎',
'color_plate' => '色碟',
'sic_bo' => '骰宝',
'roulette' => '轮盘',
'start_date' => '开始日期',
'end_date' => '结束日期',
'search' => '查询',
@@ -445,7 +490,6 @@ return [
'in_top_sumday' => '该桌子处于最新的日结天数,请明天再进行日结',
'exceeds_limit' => '下注超出限紅',
'exceeds_limit_table' => '下注超出桌子限紅',
'under_limit_table' => '下注低于桌子限紅',
'exceeds_limit_user' => '下注超出个人限紅',
'under_limit_user' => '下注低于个人限紅',
'end_bet_error' => '停止成功',
@@ -460,9 +504,97 @@ return [
'change_boot_false' => '当前有下注,不能结算,请开结果后再进行结算',
'win_limit_tip' => '已达到日赢上限,无法下注',
'confirm_to_change_card' => '确认换牌吗?',
'restart_sb' => '重新识别',
'stop_sb' => '停止识别',
'toning_result_0' => '0红4白',
'toning_result_1' => '1红3白',
'toning_result_2' => '2红2白',
'toning_result_3' => '3红1白',
'toning_result_4' => '4红0白',
'toning_zero' => '0区下注额',
'toning_four' => '4区下注额',
'toning_one' => '1区下注额',
'toning_three' => '3区下注额',
'toning_big' => '大区下注额',
'toning_small' => '小区下注额',
'toning_singular' => '单区下注额',
'toning_plural' => '双区下注额',
'dice_small' => '大小-小下注额',
'dice_big' => '大小-大下注额',
'dice_singular' => '单双-单下注额',
'dice_plural' => '单双-双区下注额',
'dice_two_11' => '双骰-1下注额',
'dice_two_22' => '双骰-2下注额',
'dice_two_33' => '双骰-3下注额',
'dice_two_44' => '双骰-4下注额',
'dice_two_55' => '双骰-5下注额',
'dice_two_66' => '双骰-6下注额',
'dice_leopard' => '全围下注额',
'dice_three_111' => '围骰-1下注额',
'dice_three_222' => '围骰-2下注额',
'dice_three_333' => '围骰-3下注额',
'dice_three_444' => '围骰-4下注额',
'dice_three_555' => '围骰-5下注额',
'dice_three_666' => '围骰-6下注额',
'dice_number_4' => '总和-4下注额',
'dice_number_5' => '总和-5下注额',
'dice_number_6' => '总和-6下注额',
'dice_number_7' => '总和-7下注额',
'dice_number_8' => '总和-8下注额',
'dice_number_9' => '总和-9下注额',
'dice_number_10' => '总和-10下注额',
'dice_number_11' => '总和-11下注额',
'dice_number_12' => '总和-12下注额',
'dice_number_13' => '总和-13下注额',
'dice_number_14' => '总和-14下注额',
'dice_number_15' => '总和-15下注额',
'dice_number_16' => '总和-16下注额',
'dice_number_17' => '总和-17下注额',
'dice_two_12' => '组合-1+2下注额',
'dice_two_13' => '组合-1+3下注额',
'dice_two_14' => '组合-1+4下注额',
'dice_two_15' => '组合-1+5下注额',
'dice_two_16' => '组合-1+6下注额',
'dice_two_23' => '组合-2+3下注额',
'dice_two_24' => '组合-2+4下注额',
'dice_two_25' => '组合-2+5下注额',
'dice_two_26' => '组合-2+6下注额',
'dice_two_34' => '组合-3+4下注额',
'dice_two_35' => '组合-3+5下注额',
'dice_two_36' => '组合-3+6下注额',
'dice_two_45' => '组合-4+5下注额',
'dice_two_46' => '组合-4+6下注额',
'dice_two_56' => '组合-5+6下注额',
'dice_living_1' => '点数-1下注额',
'dice_living_2' => '点数-2下注额',
'dice_living_3' => '点数-3下注额',
'dice_living_4' => '点数-4下注额',
'dice_living_5' => '点数-5下注额',
'dice_living_6' => '点数-6下注额',
'european' => '欧式',
'french' => '法式',
'roulette_straight' => '直注',
'roulette_split' => '分注',
'roulette_street' => '街注',
'roulette_triple' => '三数',
'roulette_corner' => '角注',
'roulette_four' => '角注',
'roulette_line' => '线注',
'roulette_dozen' => '打注',
'roulette_column' => '列注',
'roulette_red' => '红',
'roulette_black' => '黑',
'roulette_odd' => '单',
'roulette_even' => '双',
'roulette_low' => '小',
'roulette_high' => '大',
'roulette_column_1' => '第一列',
'roulette_column_2' => '第二列',
'roulette_column_3' => '第三列',
'roulette_dozen_1' => '第一打',
'roulette_dozen_2' => '第二打',
'roulette_dozen_3' => '第三打',
'roulette_zeroGame' => '轮上零旁',
'roulette_neighborsOfZero' => '零旁注上角',
'roulette_orphans' => '轮上孤注',
'roulette_theThird' => '轮盘下角注',
];
+17 -12
View File
@@ -254,18 +254,22 @@
{:lang('select_result')}
<select id="update_ludan_result">
<option value="">{:lang('select')}</option>
<option value="1-0">{:lang('banker')}</option>
<option value="2-0">{:lang('player')}</option>
<option value="3-0">{:lang('tie')}</option>
<option value="1-1">{:lang('banker')}-{:lang('banker_pair')}</option>
<option value="1-2">{:lang('banker')}-{:lang('player_pair')}</option>
<option value="1-3">{:lang('banker')}-{:lang('both_pair')}</option>
<option value="2-1">{:lang('player')}-{:lang('banker_pair')}</option>
<option value="2-2">{:lang('player')}-{:lang('player_pair')}</option>
<option value="2-3">{:lang('player')}-{:lang('both_pair')}</option>
<option value="3-1">{:lang('tie')}-{:lang('banker_pair')}</option>
<option value="3-2">{:lang('tie')}-{:lang('player_pair')}</option>
<option value="3-3">{:lang('tie')}-{:lang('both_pair')}</option>
<option value="1-0-0-0-0">{:lang('banker')}</option>
<option value="2-0-0-0-0">{:lang('player')}</option>
<option value="3-0-0-0-0">{:lang('tie')}</option>
<option value="1-1-0-0-0">{:lang('banker')}-{:lang('banker_pair')}</option>
<option value="1-2-0-0-0">{:lang('banker')}-{:lang('player_pair')}</option>
<option value="1-3-0-0-0">{:lang('banker')}-{:lang('both_pair')}</option>
<option value="1-0-2-0-0">{:lang('banker')}-幸运6(2张)</option>
<option value="1-0-3-0-0">{:lang('banker')}-幸运6(3张)</option>
<option value="1-0-0-1-0">{:lang('banker')}-龙7</option>
<option value="2-1-0-0-0">{:lang('player')}-{:lang('banker_pair')}</option>
<option value="2-2-0-0-0">{:lang('player')}-{:lang('player_pair')}</option>
<option value="2-3-0-0-0">{:lang('player')}-{:lang('both_pair')}</option>
<option value="2-0-0-0-1">{:lang('player')}-熊8</option>
<option value="3-1-0-0-0">{:lang('tie')}-{:lang('banker_pair')}</option>
<option value="3-2-0-0-0">{:lang('tie')}-{:lang('player_pair')}</option>
<option value="3-3-0-0-0">{:lang('tie')}-{:lang('both_pair')}</option>
</select>
</div>
<div class="update-ludan-footer">
@@ -288,6 +292,7 @@
<script type="text/javascript" src="/static/handle/js/layer-v3.1.1/layer.js"></script>
<script type="text/javascript" src="/static/handle/js/jquery.cookie.js"></script>
<script type="text/javascript" src="/static/handle/js/socket.io-1.4.4.js"></script>
<script type="text/javascript" src="/static/handle/js/error-report.js{$Think.VERSION_V}"></script>
<script type="text/javascript" src="/static/handle/js/handle_b.js{$Think.VERSION_V}"></script>
</body>
</html>
+5
View File
@@ -67,6 +67,10 @@
</div>
</div>
<div class="result-area" style="margin:4px auto;width:60%;">
<div class="result-area-timer" id="resultAreaTimer"></div>
<div class="result-area-img" id="resultAreaImg"></div>
</div>
</div>
<iframe class="video-iframe" id="video-iframe" ></iframe>
</div>
@@ -201,6 +205,7 @@
<script type="text/javascript" src="/static/handle/js/jquery.cookie.js"></script>
<script type="text/javascript" src="/static/handle/js/layer-v3.1.1/layer.js"></script>
<script type="text/javascript" src="/static/handle/js/socket.io-1.4.4.js"></script>
<script type="text/javascript" src="/static/handle/js/error-report.js{$Think.VERSION_V}"></script>
<script type="text/javascript" src="/static/handle/js/handle.js{$Think.VERSION_V}"></script>
</body>
</html>
+1
View File
@@ -490,6 +490,7 @@
<script type="text/javascript" src="/static/handle/js/jquery.cookie.js"></script>
<script type="text/javascript" src="/static/handle/js/layer-v3.1.1/layer.js"></script>
<script type="text/javascript" src="/static/handle/js/socket.io-1.4.4.js"></script>
<script type="text/javascript" src="/static/handle/js/error-report.js{$Think.VERSION_V}"></script>
<script type="text/javascript" src="/static/handle/js/handle_b_sb_scan_four.js{$Think.VERSION_V}"></script>
</body>
</html>
+1
View File
@@ -124,6 +124,7 @@
<script type="text/javascript" src="/static/handle/js/jquery.cookie.js"></script>
<script type="text/javascript" src="/static/handle/js/layer-v3.1.1/layer.js"></script>
<script type="text/javascript" src="/static/handle/js/socket.io-1.4.4.js"></script>
<script type="text/javascript" src="/static/handle/js/error-report.js{$Think.VERSION_V}"></script>
<script type="text/javascript" src="/static/handle/js/handle_dice.js{$Think.VERSION_V}"></script>
</body>
</html>
+20 -13
View File
@@ -105,22 +105,28 @@
<span id="betstatus"></span>
</div>
</div>
<div class="limit-box">
<div class="list clearfix">
<div class="lab">
{:lang('dragon')}\{:lang('tiger')}
<div class="bottom-row">
<div class="limit-box">
<div class="list clearfix">
<div class="lab">
{:lang('dragon')}\{:lang('tiger')}
</div>
<div class="item fl">
<span class="fr showLimitBP">&nbsp;</span>
</div>
</div>
<div class="item fl">
<span class="fr showLimitBP">&nbsp;</span>
<div class="list clearfix">
<div class="lab">
{:lang('tie')}
</div>
<div class="item fl">
<span class="fr showLimitTie">&nbsp;</span>
</div>
</div>
</div>
<div class="list clearfix">
<div class="lab">
{:lang('tie')}
</div>
<div class="item fl">
<span class="fr showLimitTie">&nbsp;</span>
</div>
<div class="result-area">
<div class="result-area-timer" id="resultAreaTimer"></div>
<div class="result-area-img" id="resultAreaImg"></div>
</div>
</div>
</div>
@@ -227,6 +233,7 @@
<script type="text/javascript" src="/static/handle/js/layer-v3.1.1/layer.js"></script>
<script type="text/javascript" src="/static/handle/js/jquery.cookie.js"></script>
<script type="text/javascript" src="/static/handle/js/socket.io-1.4.4.js"></script>
<script type="text/javascript" src="/static/handle/js/error-report.js{$Think.VERSION_V}"></script>
<script type="text/javascript" src="/static/handle/js/handle_b.js{$Think.VERSION_V}"></script>
</body>
</html>
+5
View File
@@ -59,6 +59,10 @@
</div>
</div>
<div class="result-area" style="margin:4px auto;width:60%;">
<div class="result-area-timer" id="resultAreaTimer"></div>
<div class="result-area-img" id="resultAreaImg"></div>
</div>
</div>
<iframe class="video-iframe" id="video-iframe" ></iframe>
</div>
@@ -170,6 +174,7 @@
<script type="text/javascript" src="/static/handle/js/jquery.cookie.js"></script>
<script type="text/javascript" src="/static/handle/js/layer-v3.1.1/layer.js"></script>
<script type="text/javascript" src="/static/handle/js/socket.io-1.4.4.js"></script>
<script type="text/javascript" src="/static/handle/js/error-report.js{$Think.VERSION_V}"></script>
<script type="text/javascript" src="/static/handle/js/handle.js{$Think.VERSION_V}"></script>
</body>
</html>
+1
View File
@@ -459,6 +459,7 @@
<script type="text/javascript" src="/static/handle/js/jquery.cookie.js"></script>
<script type="text/javascript" src="/static/handle/js/layer-v3.1.1/layer.js"></script>
<script type="text/javascript" src="/static/handle/js/socket.io-1.4.4.js"></script>
<script type="text/javascript" src="/static/handle/js/error-report.js{$Think.VERSION_V}"></script>
<script type="text/javascript" src="/static/handle/js/handle_dt_sb.js{$Think.VERSION_V}"></script>
</body>
</html>
+5
View File
@@ -156,6 +156,10 @@
</div>
</div>
<div class="result-area" style="margin:4px auto;width:60%;">
<div class="result-area-timer" id="resultAreaTimer"></div>
<div class="result-area-img" id="resultAreaImg"></div>
</div>
</div>
<iframe class="video-iframe" id="video-iframe" ></iframe>
</div>
@@ -341,6 +345,7 @@
<script type="text/javascript" src="/static/handle/js/jquery.cookie.js"></script>
<script type="text/javascript" src="/static/handle/js/layer-v3.1.1/layer.js"></script>
<script type="text/javascript" src="/static/handle/js/socket.io-1.4.4.js"></script>
<script type="text/javascript" src="/static/handle/js/error-report.js{$Think.VERSION_V}"></script>
<script type="text/javascript" src="/static/handle/js/handle.js{$Think.VERSION_V}"></script>
</body>
</html>
+5
View File
@@ -137,6 +137,10 @@
<small id="onlineNumber">0</small>
</div>
</div>
<div class="result-area" style="margin:4px auto;width:60%;">
<div class="result-area-timer" id="resultAreaTimer"></div>
<div class="result-area-img" id="resultAreaImg"></div>
</div>
</div>
<iframe class="video-iframe" id="video-iframe" ></iframe>
</div>
@@ -616,6 +620,7 @@
<script type="text/javascript" src="/static/handle/js/jquery.cookie.js"></script>
<script type="text/javascript" src="/static/handle/js/layer-v3.1.1/layer.js"></script>
<script type="text/javascript" src="/static/handle/js/socket.io-1.4.4.js"></script>
<script type="text/javascript" src="/static/handle/js/error-report.js{$Think.VERSION_V}"></script>
<script type="text/javascript" src="/static/handle/js/handle.js{$Think.VERSION_V}"></script>
</body>
</html>
+1
View File
@@ -620,6 +620,7 @@
<script type="text/javascript" src="/static/handle/js/jquery.cookie.js"></script>
<script type="text/javascript" src="/static/handle/js/layer-v3.1.1/layer.js"></script>
<script type="text/javascript" src="/static/handle/js/socket.io-1.4.4.js"></script>
<script type="text/javascript" src="/static/handle/js/error-report.js{$Think.VERSION_V}"></script>
<script type="text/javascript" src="/static/handle/js/handle_nn_sb.js{$Think.VERSION_V}"></script>
</body>
</html>
+1
View File
@@ -126,6 +126,7 @@
<script type="text/javascript" src="/static/handle/js/jquery.cookie.js"></script>
<script type="text/javascript" src="/static/handle/js/layer-v3.1.1/layer.js"></script>
<script type="text/javascript" src="/static/handle/js/socket.io-1.4.4.js"></script>
<script type="text/javascript" src="/static/handle/js/error-report.js{$Think.VERSION_V}"></script>
<script type="text/javascript" src="/static/handle/js/handle_roulette.js{$Think.VERSION_V}"></script>
</body>
</html>
+5
View File
@@ -51,6 +51,10 @@
</div>
</div>
<div class="result-area" style="margin:4px auto;width:60%;">
<div class="result-area-timer" id="resultAreaTimer"></div>
<div class="result-area-img" id="resultAreaImg"></div>
</div>
</div>
<iframe class="video-iframe" id="video-iframe"></iframe>
</div>
@@ -132,6 +136,7 @@
<script type="text/javascript" src="/static/handle/js/jquery.cookie.js"></script>
<script type="text/javascript" src="/static/handle/js/layer-v3.1.1/layer.js"></script>
<script type="text/javascript" src="/static/handle/js/socket.io-1.4.4.js"></script>
<script type="text/javascript" src="/static/handle/js/error-report.js{$Think.VERSION_V}"></script>
<script type="text/javascript" src="/static/handle/js/handle.js{$Think.VERSION_V}"></script>
</body>
</html>
+32
View File
@@ -0,0 +1,32 @@
<?php
declare (strict_types = 1);
namespace app\index\controller;
use think\facade\Request;
use think\response\Json;
class Log
{
public function report(): Json
{
if (!Request::instance()->isPost()) return json(['status' => 0]);
$data = Request::instance()->post();
if (empty($data)) {
$raw = Request::instance()->getContent();
$data = json_decode($raw, true) ?: [];
}
\app\utils\Logger::error(\app\utils\Logger::CAT_FRONTEND, $data['message'] ?? 'unknown', [
'source' => $data['source'] ?? 'unknown',
'type' => $data['type'] ?? 'error',
'stack' => isset($data['stack']) ? substr($data['stack'], 0, 2000) : '',
'file' => $data['file'] ?? '',
'url' => $data['url'] ?? '',
'line' => $data['line'] ?? '',
'col' => $data['col'] ?? '',
'ua' => Request::instance()->header('user-agent', ''),
'ip' => Request::instance()->ip(),
]);
return json(['status' => 1]);
}
}
+600
View File
@@ -0,0 +1,600 @@
<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2017 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
// 核心中文语言包
return [
// 操作端 和 swoole文件 简体中文语言包
'lang' => 'zh-cn',
'table' => '桌台',
'boot' => '靴数',
'number' => '局数',
'now_time' => '当前时间',
'login_fail' => '登录失败',
'banker' => '庄',
'player' => '闲',
'tie' => '和',
'banker_pair' => '庄对',
'player_pair' => '闲对',
'both_pair' => '庄闲对',
'pair' => '对子',
'big' => '大',
'small' => '小',
'dragon' => '龙',
'tiger' => '虎',
'win_6' => '赢6',
'is_win_6' => '是否赢6',
'luck_6' => '幸运6',
'commission' => '抽佣',
'free_commission' => '免佣',
'round_host' => '本局为庄家',
'banker_full' => '庄',
'player_full' => '闲',
'tie_full' => '和',
'banker_pair_full' => '庄对',
'player_pair_full' => '闲对',
'both_pair_full' => '庄闲对',
'dragon_full' => '龙',
'tiger_full' => '虎',
'player_1' => '闲1',
'player_2' => '闲2',
'player_3' => '闲3',
'player_1_flat' => '闲1平倍',
'player_1_double' => '闲1翻倍',
'banker_player_1_flat' => '庄(闲1)平倍',
'banker_player_1_double' => '庄(闲1)翻倍',
'player_2_flat' => '闲2平倍',
'player_2_double' => '闲2翻倍',
'banker_player_2_flat' => '庄(闲2)平倍',
'banker_player_2_double' => '庄(闲2)翻倍',
'player_3_flat' => '闲3平倍',
'player_3_double' => '闲3翻倍',
'banker_player_3_flat' => '庄(闲3)平倍',
'banker_player_3_double' => '庄(闲3)翻倍',
'bull_0' => '无牛',
'bull_1' => '牛一',
'bull_2' => '牛二',
'bull_3' => '牛三',
'bull_4' => '牛四',
'bull_5' => '牛五',
'bull_6' => '牛六',
'bull_7' => '牛七',
'bull_8' => '牛八',
'bull_9' => '牛九',
'bull_bull' => '牛牛',
'5_bulls' => '五公',
'yes' => '是',
'no' => '否',
'online_number' => '在线人数',
'bet_amount' => '本局下注金额',
'wait_For_Opening' => '停止下注-等待开盘',
'point' => '点',
'void' => '已作废',
'next' => '下一局',
'disclaimer' => '路牌资料仅供参考,如有错漏。本公司概不负责',
'data_error' => '数据错误',
'browser_error' => '您的浏览器不支持WebSocket',
'start' => '开始',
'end' => '结束',
'start_bet' => '接收下注',
'end_bet' => '结束下注',
'opening' => '提交结果',
'shuffle' => '开始洗牌',
'change_boot' => '换靴',
'close_Boot' => '日结算',
'logout' => '退出',
'is_to_shuffle' => '是否需要将桌子的状态设置为"洗牌中"',
'is_to_balance' => '是否需要进行日结算?',
'is_to_boot' => '是否需要进行换靴?',
'need_a_result' => '请选择要修改的结果',
'is_to_logout' => '是否退出登录?',
'edit_previous_result' => '修改上一局结果',
'select_result' => '选择结果',
'select' => '请选择',
'monday' => '星期一',
'tuesday' => '星期二',
'wednesday' => '星期三',
'thursday' => '星期四',
'friday' => '星期五',
'saturday' => '星期六',
'sunday' => '星期日',
'user_not_exist' => '用户不存在',
'table_not_run' => '该桌子暂时没有营运',
'tableNotRun' => '该桌子暂时没有营运',
'bet_fail' => '下注失败,服务器链接失败',
'no_right' => '你无权操作',
'bet_status_1' => '接受下注',
'bet_status_0' => '尚未接受下注',
'bet_status_2' => '停止下注-等待开盘',
'confirm' => '确定',
'cancel' => '取消',
'connect_fail' => '您已断开链接,请返回重新进入',
'message' => '信息',
'table_status_0' => '桌子运营中',
'table_status_1' => '洗牌中',
'table_status_2' => '停台中',
'link_server_fail' => '与服务通讯失败',
'link_server_fail_1' => '荷官不在线',
'link_server_fail_2' => '与服务通讯失败2',
'link_server_fail_3' => '与服务通讯失败3',
'appid_error' => 'appid 错误',
'appsecret_error' => 'appsecret 错误',
'appid_or_appsecret_error' => 'appid或appsecret 错误',
'param_error' => '参数错误',
'illegal_request' => '非法请求',
'balance_success' => '日结算成功',
'balance_fail' => '日结算失败',
'balance_fail_1' => '日结算失败1',
'balance_fail_2' => '日结算失败2',
'table_status_error' => '请把桌子更改为"洗牌状态"再进行日结算',
'boot_settle_success' => '靴结算成功',
'boot_settle_fail' => '靴结算失败',
'boot_settle_fail_1' => '换靴失败,该桌子还没有靴,请进行日结',
'boot_settle_fail_2' => '换靴失败,该桌子已经结算,请重新登录再继续',
'boot_settle_fail_3' => '该铺尚未结束,请开出结果后再换靴',
'start_bet_success' => '开始下注成功',
'start_bet_fail' => '开始下注失败',
'start_bet_fail_1' => '开始下注失败,下注铺已经开始下注或者已经停止了下注',
'start_bet_fail_2' => '开始下注失败,下注铺信息有误',
'start_bet_fail_3' => '操作失败,请确保桌子不是在洗牌中或者停台中状态',
'end_bet_success' => '结束下注成功',
'end_bet_fail' => '结束下注失败',
'end_bet_fail_1' => '停止下注失败,该铺还没开始接受下注或者已经停止了下注',
'end_bet_fail_2' => '开始下注失败,下注铺信息有误',
'to_bet_success' => '下注成功',
'to_bet_fail' => '下注失败',
'to_bet_fail_1' => '余额不足,不能下注',
'to_bet_fail_2' => '会员信息错误,不能下注',
'to_bet_fail_3' => '已超过允许的下注时间,不能下注',
'to_bet_fail_4' => '该局不是在可以下注的状态,不能下注',
'to_bet_fail_5' => '下注失败,下注铺信息有误',
'to_bet_fail_6' => '下注金额必须大于0',
'to_bet_fail_7' => '超过50局后无法下注幸运6',
'to_bet_fail_8' => '超过30局后无法下注大小',
'opening_success' => '开盘结果成功',
'opening_fail' => '开盘结果失败',
'opening_fail_1' => '开结果失败,请确认该局是处于停止下注的状态',
'opening_fail_2' => '开盘失败,开盘铺信息有误',
'opening_fail_3' => '请输入开盘结果',
'opening_fail_4' => '下注未结束,无法开结果',
'opening_fail_5' => '开盘失败,庄闲牌面不齐',
'opening_fail_6' => '开牌数据不存在',
'retreated_success' => '修改成功',
'retreated_fail' => '修改失败',
'retreated_fail_1' => '请正确选择结果',
'retreated_fail_2' => '没有上一铺数据可更改',
'retreated_fail_3' => '靴信息错误',
'retreated_fail_4' => '回合信息错误',
'retreated_fail_5' => '桌子信息错误',
'retreated_fail_6' => '游戏类型错误',
// PC投注页面 简体中文语言包
'welcome' => '欢迎您',
'account' => '账号',
'money' => '余额',
'language' => '语言',
'rule' => '规则',
'record' => '记录',
'user' => '个人中心',
'log_out' => '退出游戏',
'limit' => '限红',
'game' => '游戏',
'baccarat' => '百家乐',
'dt' => '龙虎',
'color_plate' => '色碟',
'sic_bo' => '骰宝',
'roulette' => '轮盘',
'start_date' => '开始日期',
'end_date' => '结束日期',
'search' => '查询',
'ttf' => '桌台/时间/局号',
'total' => '合计',
'card' => '牌',
'banker_all' => '庄',
'player_all' => '闲',
'tie_all' => '和',
'banker_pair_all' => '庄对',
'player_pair_all' => '闲对',
'both_pair_all' => '庄闲对',
'banker_doub_all' => '庄翻倍',
'player_doub_all' => '闲翻倍',
'dragon_all' => '龙',
'tiger_all' => '虎',
'full_screen' => '全屏',
'exit_full_screen' => '退出全屏',
'back' => '返回',
'sound' => '声音',
'statistics' => '统计',
'b_query' => '庄问路',
'p_query' => '闲问路',
'd_query' => '龙问路',
't_query' => '虎问路',
'line' => '线路',
'line_1' => '近景',
'line_2' => '远景',
'line_3' => '线路三',
'lobby' => '大厅',
'video_line_error' => '视频线路错误',
'lose' => '输',
'win' => '赢',
'to_bet_confirm_tip' => '请下注后再点击确定',
'browser_tip' => '请使用谷歌、360、QQ、百度、火狐、或者IE10以上版本的高级浏览器进入游戏',
'select_chip_tip' => '请选择下注筹码',
'recharge_tip' => '余额不足,请充值',
'instant_pot' => '即时彩池',
'bet' => '下注',
'settlement' => '结算结果',
'no_bet_data' => '没有下注数据',
'personal_limit_banker_high' => '个人限红:庄最高下注额为',
'personal_limit_banker_low' => '个人限红:庄最低下注额为',
'personal_limit_player_high' => '个人限红:闲最高下注额为',
'personal_limit_player_low' => '个人限红:闲最低下注额为',
'personal_limit_tie_high' => '个人限红:和最高下注额为',
'personal_limit_tie_low' => '个人限红:和最低下注额为',
'personal_limit_banker_pair_high' => '个人限红:庄对最高下注额为',
'personal_limit_banker_pair_low' => '个人限红:庄对最低下注额为',
'personal_limit_player_pair_high' => '个人限红:闲对最高下注额为',
'personal_limit_player_pair_low' => '个人限红:闲对最低下注额为',
'personal_limit_dragon_high' => '个人限红:龙最高下注额为',
'personal_limit_dragon_low' => '个人限红:龙最低下注额为',
'personal_limit_tiger_high' => '个人限红:虎最高下注额为',
'personal_limit_tiger_low' => '个人限红:虎最低下注额为',
'game_not_start' => '游戏尚未开始',
'game_stop_bet' => '本局游戏已停止下注',
'leave_table_tip' => '确定要离开当前游戏台吗?',
'select_chip_tip' => '请选择下注筹码',
// wap电投和网投语言包
'coming_soon' => '即将推出',
'game_room' => '游戏大厅',
'edit_pass' => '修改密码',
'change_password' => '修改密码',
'phone' => '联系电话',
'last_login_time' => '上次登陆时间',
'recharge' => '充值上分',
'withdraw' => '申请下分',
'bill' => '账单',
'game_record' => '游戏记录',
'baccarat_total_bet_count' => '百家乐总下注次数',
'dt_total_bet_count' => '龙虎总下注次数',
'total_cleared_wash_code' => '已结算洗码总额',
'uncleared_total_wash_code' => '未结算洗码总额',
'wash_rate' => '洗码率',
'current_password' => '请输入旧密码',
'new_password' => '请输入新密码',
'confirm_password' => '再次输入新密码',
'current_password_tip' => '请输入旧密码',
'new_password_tip' => '新密码不能小于6个字符',
'confirm_password_tip' => '两次输入的密码不一致',
'login_again' => '请重新登录',
'login' => '登录',
'sign_in' => '登录',
'account_login' => '已有账户登录',
'register' => '注册',
'register_new_user' => '新用户注册',
'password' => '密码',
'register_password_length_tip' => '密码不能小于6个字符',
'register_account_length_tip' => '账号不能小于6个字符',
'register_account_exist_tip' => '账号已存在',
'register_account_tip' => '6-20位英文.数字组成',
'register_password_tip' => '6-20位字符.不包含空格',
'register_confirm_password_tip' => '再输入一遍登录密码',
'register_success' => '注册成功',
'register_fail' => '注册失败',
'password_not_empty' => '旧密码或新密码不能为空',
'change_password_success' => '修改密码成功',
'change_password_fail' => '修改密码失败',
'current_password_error' => '旧密码错误',
'recharge_unsupport_tip' => '上分暂时未开启,请联系您的代理上分',
'withdraw_unsupport_tip' => '下分暂时未开启,请联系您的代理下分',
'select_time' => '选择时间',
'start_time_tip' => '请选择开始时间',
'end_time_tip' => '请选择结束时间',
'wash_code_amount' => '洗码量',
'code_amount' => '码量',
'net_code_amount' => '净码量',
'wash_code_time' => '洗码时间',
'extraction_method' => '提取方式',
'deposit_money' => '存入余额',
'setup' => '设置',
'mute' => '静音',
'voice' => '开声',
'win_or_lose' => '输赢',
'account_tip' => '请输入账号',
'password_tip' => '请输入密码',
'read_and_agree' => '我已阅读并同意',
'rule_and_agreement' => '游戏规则与用户协议',
'account_or_password_error' => '账号或密码错误',
'account_not_exist' => '账号不存在',
'force_offline' => '你已被管理员强制下线',
'auto_back' => '5局内未下注自动返回游戏大厅',
'reset_number' => '作废',
'is_reset_number' => '是否作废当前该局?',
'reset_number_success' => '操作成功',
'reset_number_fail_1' => '操作失败,该靴已经结算',
'reset_number_fail_2' => '操作失败,该桌子已经结算',
'reset_number_fail_3' => '操作失败,下注状态不符',
'reset_number_msg' => '该局已重置,请重新下注',
// 系统错误提示
'Undefined variable' => '未定义变量',
'Undefined index' => '未定义数组索引',
'Undefined offset' => '未定义数组下标',
'Parse error' => '语法解析错误',
'Type error' => '类型错误',
'Fatal error' => '致命错误',
'syntax error' => '语法错误',
// 框架核心错误提示
'dispatch type not support' => '不支持的调度类型',
'method param miss' => '方法参数错误',
'method not exists' => '方法不存在',
'module not exists' => '模块不存在',
'controller not exists' => '控制器不存在',
'class not exists' => '类不存在',
'property not exists' => '类的属性不存在',
'template not exists' => '模板文件不存在',
'illegal controller name' => '非法的控制器名称',
'illegal action name' => '非法的操作名称',
'url suffix deny' => '禁止的URL后缀访问',
'Route Not Found' => '当前访问路由未定义',
'Undefined db type' => '未定义数据库类型',
'variable type error' => '变量类型错误',
'PSR-4 error' => 'PSR-4 规范错误',
'not support total' => '简洁模式下不能获取数据总数',
'not support last' => '简洁模式下不能获取最后一页',
'error session handler' => '错误的SESSION处理器类',
'not allow php tag' => '模板不允许使用PHP语法',
'not support' => '不支持',
'redisd master' => 'Redisd 主服务器错误',
'redisd slave' => 'Redisd 从服务器错误',
'must run at sae' => '必须在SAE运行',
'memcache init error' => '未开通Memcache服务,请在SAE管理平台初始化Memcache服务',
'KVDB init error' => '没有初始化KVDB,请在SAE管理平台初始化KVDB服务',
'fields not exists' => '数据表字段不存在',
'where express error' => '查询表达式错误',
'no data to update' => '没有任何数据需要更新',
'miss data to insert' => '缺少需要写入的数据',
'miss complex primary data' => '缺少复合主键数据',
'miss update condition' => '缺少更新条件',
'model data Not Found' => '模型数据不存在',
'table data not Found' => '表数据不存在',
'delete without condition' => '没有条件不会执行删除操作',
'miss relation data' => '缺少关联表数据',
'tag attr must' => '模板标签属性必须',
'tag error' => '模板标签错误',
'cache write error' => '缓存写入失败',
'sae mc write error' => 'SAE mc 写入错误',
'route name not exists' => '路由标识不存在(或参数不够)',
'invalid request' => '非法请求',
'bind attr has exists' => '模型的属性已经存在',
'relation data not exists' => '关联数据不存在',
'relation not support' => '关联不支持',
'chunk not support order' => 'Chunk不支持调用order方法',
// 上传错误信息
'unknown upload error' => '未知上传错误!',
'file write error' => '文件写入失败!',
'upload temp dir not found' => '找不到临时文件夹!',
'no file to uploaded' => '没有文件被上传!',
'only the portion of file is uploaded' => '文件只有部分被上传!',
'upload File size exceeds the maximum value' => '上传文件大小超过了最大值!',
'upload write error' => '文件上传保存错误!',
'has the same filename: {:filename}' => '存在同名文件:{:filename}',
'upload illegal files' => '非法上传文件',
'illegal image files' => '非法图片文件',
'extensions to upload is not allowed' => '上传文件后缀不允许',
'mimetype to upload is not allowed' => '上传文件MIME类型不允许!',
'filesize not match' => '上传文件大小不符!',
'directory {:path} creation failed' => '目录 {:path} 创建失败!',
// Validate Error Message
':attribute require' => ':attribute不能为空',
':attribute must be numeric' => ':attribute必须是数字',
':attribute must be integer' => ':attribute必须是整数',
':attribute must be float' => ':attribute必须是浮点数',
':attribute must be bool' => ':attribute必须是布尔值',
':attribute not a valid email address' => ':attribute格式不符',
':attribute not a valid mobile' => ':attribute格式不符',
':attribute must be a array' => ':attribute必须是数组',
':attribute must be yes,on or 1' => ':attribute必须是yes、on或者1',
':attribute not a valid datetime' => ':attribute不是一个有效的日期或时间格式',
':attribute not a valid file' => ':attribute不是有效的上传文件',
':attribute not a valid image' => ':attribute不是有效的图像文件',
':attribute must be alpha' => ':attribute只能是字母',
':attribute must be alpha-numeric' => ':attribute只能是字母和数字',
':attribute must be alpha-numeric, dash, underscore' => ':attribute只能是字母、数字和下划线_及破折号-',
':attribute not a valid domain or ip' => ':attribute不是有效的域名或者IP',
':attribute must be chinese' => ':attribute只能是汉字',
':attribute must be chinese or alpha' => ':attribute只能是汉字、字母',
':attribute must be chinese,alpha-numeric' => ':attribute只能是汉字、字母和数字',
':attribute must be chinese,alpha-numeric,underscore, dash' => ':attribute只能是汉字、字母、数字和下划线_及破折号-',
':attribute not a valid url' => ':attribute不是有效的URL地址',
':attribute not a valid ip' => ':attribute不是有效的IP地址',
':attribute must be dateFormat of :rule' => ':attribute必须使用日期格式 :rule',
':attribute must be in :rule' => ':attribute必须在 :rule 范围内',
':attribute be notin :rule' => ':attribute不能在 :rule 范围内',
':attribute must between :1 - :2' => ':attribute只能在 :1 - :2 之间',
':attribute not between :1 - :2' => ':attribute不能在 :1 - :2 之间',
'size of :attribute must be :rule' => ':attribute长度不符合要求 :rule',
'max size of :attribute must be :rule' => ':attribute长度不能超过 :rule',
'min size of :attribute must be :rule' => ':attribute长度不能小于 :rule',
':attribute cannot be less than :rule' => ':attribute日期不能小于 :rule',
':attribute cannot exceed :rule' => ':attribute日期不能超过 :rule',
':attribute not within :rule' => '不在有效期内 :rule',
'access IP is not allowed' => '不允许的IP访问',
'access IP denied' => '禁止的IP访问',
':attribute out of accord with :2' => ':attribute和确认字段:2不一致',
':attribute cannot be same with :2' => ':attribute和比较字段:2不能相同',
':attribute must greater than or equal :rule' => ':attribute必须大于等于 :rule',
':attribute must greater than :rule' => ':attribute必须大于 :rule',
':attribute must less than or equal :rule' => ':attribute必须小于等于 :rule',
':attribute must less than :rule' => ':attribute必须小于 :rule',
':attribute must equal :rule' => ':attribute必须等于 :rule',
':attribute has exists' => ':attribute已存在',
':attribute not conform to the rules' => ':attribute不符合指定规则',
'invalid Request method' => '无效的请求类型',
'invalid token' => '令牌数据无效',
'not conform to the rules' => '规则错误',
'in_top_sumday' => '该桌子处于最新的日结天数,请明天再进行日结',
'exceeds_limit' => '下注超出限紅',
'exceeds_limit_table' => '下注超出桌子限紅',
'exceeds_limit_user' => '下注超出个人限紅',
'under_limit_user' => '下注低于个人限紅',
'end_bet_error' => '已停止下注',
'end_bet_error_1' => '当前局状态不在下注状态,不能停止',
'end_bet_error_2' => '停止下注失败',
'repeated_entry' => '你的账号在其他地方登陆了,即将退出',
'online_entrance' => '电投登录入口',
'onlinechip_entrance' => '网投登录入口',
'agent_entrance' => '代理端登录入口',
'login_entrance' => '登录入口',
'change_boot_false' => '当前有下注,不能结算,请开结果后再进行结算',
'win_limit_tip' => '已达到日赢上限,无法下注',
'toning_result_0' => '0红4白',
'toning_result_1' => '1红3白',
'toning_result_2' => '2红2白',
'toning_result_3' => '3红1白',
'toning_result_4' => '4红0白',
'toning_zero' => '0区下注额',
'toning_four' => '4区下注额',
'toning_one' => '1区下注额',
'toning_three' => '3区下注额',
'toning_big' => '大区下注额',
'toning_small' => '小区下注额',
'toning_singular' => '单区下注额',
'toning_plural' => '双区下注额',
'dice_small' => '大小-小下注额',
'dice_big' => '大小-大下注额',
'dice_singular' => '单双-单下注额',
'dice_plural' => '单双-双区下注额',
'dice_two_11' => '双骰-1下注额',
'dice_two_22' => '双骰-2下注额',
'dice_two_33' => '双骰-3下注额',
'dice_two_44' => '双骰-4下注额',
'dice_two_55' => '双骰-5下注额',
'dice_two_66' => '双骰-6下注额',
'dice_leopard' => '全围下注额',
'dice_three_111' => '围骰-1下注额',
'dice_three_222' => '围骰-2下注额',
'dice_three_333' => '围骰-3下注额',
'dice_three_444' => '围骰-4下注额',
'dice_three_555' => '围骰-5下注额',
'dice_three_666' => '围骰-6下注额',
'dice_number_4' => '总和-4下注额',
'dice_number_5' => '总和-5下注额',
'dice_number_6' => '总和-6下注额',
'dice_number_7' => '总和-7下注额',
'dice_number_8' => '总和-8下注额',
'dice_number_9' => '总和-9下注额',
'dice_number_10' => '总和-10下注额',
'dice_number_11' => '总和-11下注额',
'dice_number_12' => '总和-12下注额',
'dice_number_13' => '总和-13下注额',
'dice_number_14' => '总和-14下注额',
'dice_number_15' => '总和-15下注额',
'dice_number_16' => '总和-16下注额',
'dice_number_17' => '总和-17下注额',
'dice_two_12' => '组合-1+2下注额',
'dice_two_13' => '组合-1+3下注额',
'dice_two_14' => '组合-1+4下注额',
'dice_two_15' => '组合-1+5下注额',
'dice_two_16' => '组合-1+6下注额',
'dice_two_23' => '组合-2+3下注额',
'dice_two_24' => '组合-2+4下注额',
'dice_two_25' => '组合-2+5下注额',
'dice_two_26' => '组合-2+6下注额',
'dice_two_34' => '组合-3+4下注额',
'dice_two_35' => '组合-3+5下注额',
'dice_two_36' => '组合-3+6下注额',
'dice_two_45' => '组合-4+5下注额',
'dice_two_46' => '组合-4+6下注额',
'dice_two_56' => '组合-5+6下注额',
'dice_living_1' => '点数-1下注额',
'dice_living_2' => '点数-2下注额',
'dice_living_3' => '点数-3下注额',
'dice_living_4' => '点数-4下注额',
'dice_living_5' => '点数-5下注额',
'dice_living_6' => '点数-6下注额',
'european' => '欧式',
'french' => '法式',
'roulette_straight' => '直注',
'roulette_split' => '分注',
'roulette_street' => '街注',
'roulette_triple' => '三数',
'roulette_corner' => '角注',
'roulette_four' => '角注',
'roulette_line' => '线注',
'roulette_dozen' => '打注',
'roulette_column' => '列注',
'roulette_red' => '红',
'roulette_black' => '黑',
'roulette_odd' => '单',
'roulette_even' => '双',
'roulette_low' => '小',
'roulette_high' => '大',
'roulette_column_1' => '第一列',
'roulette_column_2' => '第二列',
'roulette_column_3' => '第三列',
'roulette_dozen_1' => '第一打',
'roulette_dozen_2' => '第二打',
'roulette_dozen_3' => '第三打',
'roulette_zeroGame' => '轮上零旁',
'roulette_neighborsOfZero' => '零旁注上角',
'roulette_orphans' => '轮上孤注',
'roulette_theThird' => '轮盘下角注',
];
BIN
View File
Binary file not shown.
+2 -1
View File
@@ -3,6 +3,7 @@ declare (strict_types = 1);
namespace app\listener;
use app\utils\Logger;
use freedom\utils\SocketSession;
use think\swoole\WebSocket;
@@ -55,6 +56,6 @@ class WsClose
}
$tableFd->del((string) $fd);
$ws->leave(SocketSession::HOUSE_NAME);
echo $fd.":退出\n";
Logger::info(Logger::CAT_CONNECT, 'ws_close', ['fd' => $fd, 'mode' => $mode, 'table_id' => $fdInfo['table_id'] ?? '']);
}
}
+6
View File
@@ -7,6 +7,7 @@ use app\services\connect\ScanConnectService;
use app\services\connect\SpaceConnectService;
use app\services\connect\UserConnectService;
use app\services\connect\ManagerConnectService;
use app\utils\Logger;
use think\Request;
class WsConnect
@@ -18,6 +19,11 @@ class WsConnect
*/
public function handle(Request $event){
$connect = $event->get('connect');
Logger::info(Logger::CAT_CONNECT, 'ws_connect', [
'mode' => $connect,
'table_id' => $event->get('table_id'),
'account' => $event->get('account'),
]);
switch ($connect) {
case 'space':
SpaceConnectService::doSpaceConnect($event);
+3
View File
@@ -4,6 +4,7 @@ declare (strict_types = 1);
namespace app\listener\space;
use app\models\process\Boot;
use app\utils\Logger;
use freedom\utils\SocketSession;
use think\swoole\WebSocket;
@@ -22,7 +23,9 @@ class ChangeBoot
$modelRes = Boot::changeBoot($tableInfo);
if ($modelRes['status'] == true){
$ws->to(SocketSession::HOUSE_NAME)->emit('changeBoot',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $modelRes['data']]);
Logger::info(Logger::CAT_GAME, 'change_boot', ['table_id' => $tableInfo['id'], 'table_name' => $tableInfo['table_name']]);
}else{
Logger::warn(Logger::CAT_GAME, 'change_boot_fail', ['table_id' => $tableInfo['id'], 'msg' => $modelRes['msg']]);
$ws->emit('changeBoot', ['status' => false, 'msg' => $modelRes['msg']]);
}
}else{
+4
View File
@@ -4,6 +4,7 @@ declare (strict_types = 1);
namespace app\listener\space;
use app\models\process\Sumday;
use app\utils\Logger;
use freedom\utils\SocketSession;
use think\swoole\Websocket;
@@ -22,11 +23,14 @@ class ResetBoot
$modelRes = Sumday::resetBoot($tableInfo);
if ($modelRes['status'] == true){
$ws->to(SocketSession::HOUSE_NAME)->emit('resetBoot',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $modelRes['data']]);
Logger::info(Logger::CAT_GAME, 'reset_boot_success', ['table_id' => $tableInfo['id']]);
}else{
$ws->emit('resetBoot', ['status' => false, 'msg' => $modelRes['msg']]);
Logger::warn(Logger::CAT_GAME, 'reset_boot_fail', ['table_id' => $tableInfo['id'], 'reason' => $modelRes['msg']]);
}
}else{
$ws->emit('resetBoot', ['status' => false, 'msg' => $preliminaryCheckRes['msg']]);
Logger::warn(Logger::CAT_GAME, 'reset_boot_fail', ['reason' => $preliminaryCheckRes['msg']]);
}
}
}
BIN
View File
Binary file not shown.
+4 -1
View File
@@ -136,7 +136,7 @@ class NumberTab extends BaseModel
{
$numberTabInfo = self::get(['id' => $numberTabId]);
if (!$numberTabInfo) return ['status' => false, 'msg' => 'end_bet_fail'];
if ($numberTabInfo['bet_status'] != 1) return ['status' => false, 'msg' => 'end_bet_error'];
if ($numberTabInfo['bet_status'] != 1) return ['status' => false, 'msg' => 'end_bet_error', 'bet_status' => $numberTabInfo['bet_status']];
self::where(['id' => $numberTabInfo['id']])->update(['bet_status' => 2, 'bet_end_time' => time()]);
$numberTabInfo['bet_status'] = 2;
$numberTabInfo['bet_start_time'] = time();
@@ -687,6 +687,9 @@ class NumberTab extends BaseModel
'result_before_edit' => $numberTabInfo['result'],
'pair' => $event['pair'],
'pair_before_edit' => $numberTabInfo['pair'],
'luck_six' => intval($event['luck_six'] ?? 0),
'dragon_seven' => intval($event['dragon_seven'] ?? 0),
'panda_eight' => intval($event['panda_eight'] ?? 0),
);
NumberTab::where(['id' => $numberTabInfo['id']])->update($updateNumberTab);
BIN
View File
Binary file not shown.
@@ -4,6 +4,7 @@
namespace app\services\bet;
use app\models\bet\Bet;
use app\utils\Logger;
use freedom\utils\SocketSession;
/**
@@ -156,8 +157,10 @@ class ToBetBaccaratService
),
);
$ws->to(SocketSession::HOUSE_NAME)->emit('allBetAmount',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
Logger::info(Logger::CAT_BET, 'baccarat_bet_success', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
}else{
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => 'to_bet_fail']);
Logger::warn(Logger::CAT_BET, 'baccarat_bet_db_fail', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
}
SocketSession::resetRepeat($fd,'user','isToBet');
}
+15 -1
View File
@@ -9,6 +9,7 @@ use app\models\process\NumberTab;
use app\models\user\User;
use app\models\user\Session;
use app\services\connect\InitTableService;
use app\utils\Logger;
class ToBetCommonService
{
@@ -24,48 +25,61 @@ class ToBetCommonService
/** 通用检验重复部分开始 */
$amount = array_sum($data);
if ($amount == 0){
Logger::warn(Logger::CAT_BET, 'bet_rejected', ['reason' => 'to_bet_fail_6', 'detail' => 'zero_amount']);
return ['status' => false, 'msg' => 'to_bet_fail_6'];
}
$numberTabId = isset($event['number_tab_id']) && intval($event['number_tab_id']) > 0 ? intval($event['number_tab_id']) : 0;
$userId = isset($event['user_id']) && intval($event['user_id']) > 0 ? intval($event['user_id']) : 0;
$userInfo = User::get(['id' => $userId, 'status' => 1, 'is_delete' => 0]);
if (!$userInfo) return ['status' => false, 'msg' => 'to_bet_fail_2'];
if (!$userInfo) {
Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_2', 'detail' => 'user_not_found']);
return ['status' => false, 'msg' => 'to_bet_fail_2'];
}
if($userInfo['bet_type'] == 2){
$session_id = $userInfo['api_token'];
$sessionInfo = Session::get(['session_id' => $session_id]);
if(!$sessionInfo){
Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_9', 'detail' => 'session_not_found']);
return ['status' => false, 'msg' => 'to_bet_fail_9'];
}
if(!$sessionInfo['server_status']){
Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_10', 'detail' => 'server_status_off']);
return ['status' => false, 'msg' => 'to_bet_fail_10'];
}
}
// 使用 InitTableService::initTable 获取当前靴的最新一局,与其他服务保持一致
$numberTabInfo = InitTableService::initTable($tableInfo);
if ($numberTabInfo['id'] != $numberTabId){
Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_5', 'detail' => 'number_tab_mismatch']);
return ['status' => false, 'msg' => 'to_bet_fail_5'];
}
if ($numberTabInfo['bet_status'] != 1 || time() > ($numberTabInfo['bet_start_time'] + $tableInfo['wait_time'])){
Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_4', 'detail' => 'bet_closed_or_timeout']);
return ['status' => false, 'msg' => 'to_bet_fail_4'];
}
// 超过50局幸运6禁止下注
if ($numberTabInfo['number'] > 50 && isset($event['luck_six_amount']) && $event['luck_six_amount'] > 0){
Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_7', 'detail' => 'luck_six_over_50_rounds']);
return ['status' => false, 'msg' => 'to_bet_fail_7'];
}
// 超过30局大小禁止下注
if ($numberTabInfo['number'] > 30 && isset($event['big_amount']) && $event['big_amount'] > 0){
Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_8', 'detail' => 'big_over_30_rounds']);
return ['status' => false, 'msg' => 'to_bet_fail_8'];
}
if ($numberTabInfo['number'] > 30 && isset($event['small_amount']) && $event['small_amount'] > 0){
Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_8', 'detail' => 'small_over_30_rounds']);
return ['status' => false, 'msg' => 'to_bet_fail_8'];
}
if($userInfo['win_limit'] > 0){
$winTotalToday = Bet::getWinTotalToday($userInfo['id']);
if($winTotalToday >= $userInfo['win_limit']){
Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'win_limit_tip', 'detail' => 'daily_win_limit_reached']);
return ['status' => false, 'msg' => 'win_limit_tip'];
}
}
if ($userInfo['money'] < $amount){
Logger::warn(Logger::CAT_BET, 'bet_rejected', ['user_id' => $userId, 'table_id' => $tableInfo['id'] ?? 0, 'reason' => 'to_bet_fail_1', 'detail' => 'insufficient_balance']);
return ['status' => false, 'msg' => 'to_bet_fail_1'];
}
return ['status' => true, 'numberTabInfo' => $numberTabInfo, 'userInfo' => $userInfo];
+4
View File
@@ -3,6 +3,7 @@
namespace app\services\bet;
use app\models\bet\Bet;
use app\utils\Logger;
use freedom\utils\DiceUtil;
use freedom\utils\SocketSession;
@@ -33,6 +34,7 @@ class ToBetDiceService{
$time = time();
$toBetCheck = ToBetCommonService::toBetCheck($tableInfo,$event,$data);
if ($toBetCheck['status'] == false){
Logger::warn(Logger::CAT_BET, 'dice_bet_fail', ['table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
SocketSession::resetRepeat($fd,'user','isToBet');
return;
@@ -90,6 +92,7 @@ class ToBetDiceService{
$res = Bet::toBet($tableInfo,$userInfo,$numberTabInfo,$prevBetInfo,$data,$seat_num,$betTotalAmount,$time,0);
$numberTabAmount = string_to_array($numberTabInfo['dice_amount']);
if($res){
Logger::info(Logger::CAT_BET, 'dice_bet_success', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
$ws->emit('toBet',['status' => true, 'table_id' => $tableInfo['id'], 'bet_amount_msg' => $betTotalAmount, 'money' => ($userInfo['money'] - $amount),'seat_num' => $seat_num, 'msg' => 'to_bet_success']);
$totalAmountArray = DiceUtil::amountInc($numberTabAmount, $data);
$round = [
@@ -98,6 +101,7 @@ class ToBetDiceService{
];
$ws->to(SocketSession::HOUSE_NAME)->emit('allBetAmount',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
}else{
Logger::warn(Logger::CAT_BET, 'dice_bet_db_fail', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => 'to_bet_fail']);
}
SocketSession::resetRepeat($fd,'user','isToBet');
+4
View File
@@ -5,6 +5,7 @@ namespace app\services\bet;
use app\models\bet\Bet;
use app\utils\Logger;
use freedom\utils\SocketSession;
/**
@@ -32,6 +33,7 @@ class ToBetDtService
$time = time();
$toBetCheck = ToBetCommonService::toBetCheck($tableInfo,$event,$data);
if ($toBetCheck['status'] == false){
Logger::warn(Logger::CAT_BET, 'dt_bet_fail', ['table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
SocketSession::resetRepeat($fd,'user','isToBet');
return;
@@ -107,6 +109,7 @@ class ToBetDtService
$res = Bet::toBet($tableInfo,$userInfo,$numberTabInfo,$prevBetInfo,$data,$seat_num,$betTotalAmount,$time,0);
if($res){
Logger::info(Logger::CAT_BET, 'dt_bet_success', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
$ws->emit('toBet',['status' => true, 'table_id' => $tableInfo['id'], 'bet_amount_msg' => $betTotalAmount, 'money' => ($userInfo['money'] - $amount),'seat_num' => $seat_num, 'msg' => 'to_bet_success']);
if($userInfo['bet_type'] == 2){
$tableManager = app('swoole.table.manager');
@@ -128,6 +131,7 @@ class ToBetDtService
);
$ws->to(SocketSession::HOUSE_NAME)->emit('allBetAmount',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
}else{
Logger::warn(Logger::CAT_BET, 'dt_bet_db_fail', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => 'to_bet_fail']);
}
SocketSession::resetRepeat($fd,'user','isToBet');
+4
View File
@@ -4,6 +4,7 @@
namespace app\services\bet;
use app\models\bet\Bet;
use app\utils\Logger;
use freedom\utils\SocketSession;
/**
@@ -49,6 +50,7 @@ class ToBetNnService
$time = time();
$toBetCheck = ToBetCommonService::toBetCheck($tableInfo,$event,$data);
if ($toBetCheck['status'] == false){
Logger::warn(Logger::CAT_BET, 'nn_bet_fail', ['table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
SocketSession::resetRepeat($fd,'user','isToBet');
return;
@@ -181,9 +183,11 @@ class ToBetNnService
$res = Bet::toBet($tableInfo,$userInfo,$numberTabInfo,$prevBetInfo,$data,$seat_num,$betTotalAmount,$time,0);
if($res){
Logger::info(Logger::CAT_BET, 'nn_bet_success', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
$ws->emit('toBet',['status' => true, 'table_id' => $tableInfo['id'], 'bet_amount_msg' => $betTotalAmount, 'money' => ($userInfo['money'] - $amount),'seat_num' => $seat_num, 'msg' => 'to_bet_success']);
// 待确定是否推送即时彩池,现不推送
}else{
Logger::warn(Logger::CAT_BET, 'nn_bet_db_fail', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => 'to_bet_fail']);
}
SocketSession::resetRepeat($fd,'user','isToBet');
@@ -3,6 +3,7 @@
namespace app\services\bet;
use app\models\bet\Bet;
use app\utils\Logger;
use freedom\utils\RouletteUtil;
use freedom\utils\SocketSession;
@@ -36,6 +37,7 @@ class ToBetRouletteService{
$time = time();
$toBetCheck = ToBetCommonService::toBetCheck($tableInfo,$event,$data);
if ($toBetCheck['status'] == false){
Logger::warn(Logger::CAT_BET, 'roulette_bet_fail', ['table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
SocketSession::resetRepeat($fd,'user','isToBet');
return;
@@ -54,6 +56,7 @@ class ToBetRouletteService{
$res = Bet::toBet($tableInfo,$userInfo,$numberTabInfo,$prevBetInfo,$data,$seat_num,$betTotalAmount,$time,0,$fieldName);
$numberTabAmount = string_to_array($numberTabInfo[$fieldName]);
if($res){
Logger::info(Logger::CAT_BET, 'roulette_bet_success', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
$ws->emit('toBet',['status' => true, 'table_id' => $tableInfo['id'], 'bet_amount_msg' => [$fieldName => $betTotalAmount], 'money' => ($userInfo['money'] - $amount),'seat_num' => $seat_num, 'msg' => 'to_bet_success']);
$totalAmountArray = RouletteUtil::amountInc($numberTabAmount, $data);
$round = [
@@ -62,6 +65,7 @@ class ToBetRouletteService{
];
$ws->to(SocketSession::HOUSE_NAME)->emit('allBetAmount',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
}else{
Logger::warn(Logger::CAT_BET, 'roulette_bet_db_fail', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => 'to_bet_fail']);
}
SocketSession::resetRepeat($fd,'user','isToBet');
+4
View File
@@ -4,6 +4,7 @@
namespace app\services\bet;
use app\models\bet\Bet;
use app\utils\Logger;
use freedom\utils\SocketSession;
/**
@@ -50,6 +51,7 @@ class ToBetTcService
$time = time();
$toBetCheck = ToBetCommonService::toBetCheck($tableInfo,$event,$data);
if ($toBetCheck['status'] == false){
Logger::warn(Logger::CAT_BET, 'tc_bet_fail', ['table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
SocketSession::resetRepeat($fd,'user','isToBet');
return;
@@ -182,9 +184,11 @@ class ToBetTcService
$res = Bet::toBet($tableInfo,$userInfo,$numberTabInfo,$prevBetInfo,$data,$seat_num,$betTotalAmount,$time,0);
if($res){
Logger::info(Logger::CAT_BET, 'tc_bet_success', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
$ws->emit('toBet',['status' => true, 'table_id' => $tableInfo['id'], 'bet_amount_msg' => $betTotalAmount, 'money' => ($userInfo['money'] - $amount),'seat_num' => $seat_num, 'msg' => 'to_bet_success']);
// 待确定是否推送即时彩池,现不推送
}else{
Logger::warn(Logger::CAT_BET, 'tc_bet_db_fail', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => 'to_bet_fail']);
}
SocketSession::resetRepeat($fd,'user','isToBet');
+4
View File
@@ -4,6 +4,7 @@
namespace app\services\bet;
use app\models\bet\Bet;
use app\utils\Logger;
use freedom\utils\SocketSession;
/**
@@ -36,6 +37,7 @@ class ToBetToningService
$time = time();
$toBetCheck = ToBetCommonService::toBetCheck($tableInfo,$event,$data);
if ($toBetCheck['status'] == false){
Logger::warn(Logger::CAT_BET, 'toning_bet_fail', ['table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => $toBetCheck['msg']]);
SocketSession::resetRepeat($fd,'user','isToBet');
return;
@@ -89,6 +91,7 @@ class ToBetToningService
$res = Bet::toBet($tableInfo,$userInfo,$numberTabInfo,$prevBetInfo,$data,$seat_num,$betTotalAmount,$time,0);
$numberTabAmount = string_to_array($numberTabInfo['toning_amount']);
if($res){
Logger::info(Logger::CAT_BET, 'toning_bet_success', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
$ws->emit('toBet',['status' => true, 'table_id' => $tableInfo['id'], 'bet_amount_msg' => $betTotalAmount, 'money' => ($userInfo['money'] - $amount),'seat_num' => $seat_num, 'msg' => 'to_bet_success']);
$round = array(
'toning_zero' => isset($numberTabAmount['toning_zero']) ? intval($numberTabAmount['toning_zero'] + $data['toning_zero']) : $data['toning_zero'],
@@ -113,6 +116,7 @@ class ToBetToningService
);
$ws->to(SocketSession::HOUSE_NAME)->emit('allBetAmount',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
}else{
Logger::warn(Logger::CAT_BET, 'toning_bet_db_fail', ['user_id' => $userInfo['id'], 'table_id' => $tableInfo['id'], 'amount' => $amount]);
$ws->emit('toBet',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => 'to_bet_fail']);
}
SocketSession::resetRepeat($fd,'user','isToBet');
+16 -6
View File
@@ -7,6 +7,7 @@ namespace app\services\connect;
use app\models\process\Boot;
use app\models\process\NumberTab;
use app\models\process\Sumday;
use app\utils\Logger;
/**
* TODO 桌子状态服务
@@ -22,15 +23,24 @@ class InitTableService
*/
public static function initTable(array $tableInfo): array
{
//查询日结
$lastSumday = Sumday::getByTableIdOrderByIdDesc($tableInfo);
if (!$lastSumday) $lastSumday = Sumday::addByTable($tableInfo);
//查询靴
if (!$lastSumday) {
$lastSumday = Sumday::addByTable($tableInfo);
Logger::info(Logger::CAT_GAME, 'init_create_sumday', ['table_id' => $tableInfo['id']]);
}
$lastBoot = Boot::getByTableIdOrderByIdDesc($tableInfo);
if (!$lastBoot) $lastBoot = Boot::addBySumday($lastSumday);
//查询铺
if (!$lastBoot) {
$lastBoot = Boot::addBySumday($lastSumday);
Logger::info(Logger::CAT_GAME, 'init_create_boot', ['table_id' => $tableInfo['id'], 'sumday_id' => $lastSumday['id'] ?? '']);
}
$lastNumberTab = NumberTab::getByBootIdOrderByIdDesc($lastBoot);
if (!$lastNumberTab) $lastNumberTab = NumberTab::addByBoot($lastBoot);
if (!$lastNumberTab) {
$lastNumberTab = NumberTab::addByBoot($lastBoot);
Logger::info(Logger::CAT_GAME, 'init_create_number_tab', ['table_id' => $tableInfo['id'], 'boot_id' => $lastBoot['id'] ?? '']);
}
if (!$lastNumberTab) {
Logger::warn(Logger::CAT_GAME, 'init_table_fail', ['table_id' => $tableInfo['id'], 'table_name' => $tableInfo['table_name'] ?? '']);
}
return $lastNumberTab;
}
@@ -6,6 +6,7 @@ namespace app\services\connect;
use app\models\process\NumberTab;
use app\models\table\Table;
use app\utils\Logger;
use freedom\utils\SocketSession;
use think\Request;
@@ -30,6 +31,7 @@ class ScanConnectService
if (!$numberTabInfo){
$ws->emit('onlineLogin',['status' => false, 'msg' => 'Not NumberTab Data']);
$ws->close();
Logger::warn(Logger::CAT_CONNECT, 'scan_connect_fail', ['table_id' => $tableId, 'reason' => 'no_number_tab_data']);
return;
}
$round = array();
@@ -45,5 +47,6 @@ class ScanConnectService
}
$ws->join(SocketSession::HOUSE_NAME);
$ws->emit('onlineLogin',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
Logger::info(Logger::CAT_CONNECT, 'scan_connect_success', ['table_id' => $tableId]);
}
}
+4 -1
View File
@@ -6,6 +6,7 @@ namespace app\services\connect;
use app\models\table\Table;
use app\models\table\UserController;
use app\utils\Logger;
use freedom\utils\SocketSession;
use think\Request;
@@ -38,8 +39,8 @@ class SpaceConnectService
$username = trim($event->get('account'));
$userController = UserController::get(['id' => $userId, 'username' => $username, 'login_token' => $loginToken]);
if (!$tableInfo || !$userController){
Logger::warn(Logger::CAT_CONNECT, 'space_auth_fail', ['table_id' => $tableId, 'username' => $username, 'has_table' => !!$tableInfo, 'has_user' => !!$userController]);
$ws->emit('onlineLogin',['status' => false, 'msg' => 'not_table_data']);
//$ws->close();
return;
}
$lastNumberTab = InitTableService::initTable($tableInfo);
@@ -54,7 +55,9 @@ class SpaceConnectService
$round['show_card'] = GetCardService::getCard($tableInfo,$lastNumberTab);
$ws->emit('onlineLogin',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
SocketSession::saveSocketSession(['table_id' => $tableInfo['id'], 'table_name' => $tableInfo['table_name']],'space');
Logger::info(Logger::CAT_CONNECT, 'space_login_ok', ['table_id' => $tableInfo['id'], 'table_name' => $tableInfo['table_name'], 'username' => $username]);
}else{
Logger::warn(Logger::CAT_CONNECT, 'space_init_fail', ['table_id' => $tableId, 'username' => $username]);
$ws->emit('onlineLogin',['status' => false, 'table_id' => $tableInfo['id'], 'msg' => 'link_server_fail']);
//$ws->close();
}
@@ -5,6 +5,7 @@ namespace app\services\connect;
use app\models\user\User;
use app\utils\Logger;
use freedom\utils\SocketSession;
use think\Request;
@@ -30,13 +31,16 @@ class UserConnectService
if($userInfo && $userInfo['login_token'] == $loginToken && $username == $userInfo['username']){
SocketSession::saveSocketSession(['user_id' => $userId, 'username' => $username],'user');
$ws->emit('onlineLogin',['status' => true, 'money' => $userInfo['money']]);
Logger::info(Logger::CAT_CONNECT, 'user_login_success', ['user_id' => $userId, 'username' => $username]);
}else{
$ws->emit('onlineLogin',['status' => false, 'money' => 0, 'msg' => 'link_server_fail']);
$ws->close();
Logger::warn(Logger::CAT_CONNECT, 'user_login_auth_fail', ['user_id' => $userId, 'username' => $username, 'reason' => 'token_or_user_mismatch']);
}
}else{
$ws->emit('onlineLogin',['status' => false, 'money' => 0, 'msg' => 'link_server_fail']);
$ws->close();
Logger::warn(Logger::CAT_CONNECT, 'user_login_param_missing', ['user_id' => $userId, 'username' => $username ?? '']);
}
}
}
+27 -19
View File
@@ -11,6 +11,7 @@ use app\services\waybill\WaybillRemindService;
use freedom\utils\CardPosition;
use freedom\utils\RedisUtil;
use freedom\utils\SocketSession;
use app\utils\Logger;
use think\swoole\Websocket;
/**
@@ -32,6 +33,7 @@ class OpeningBaccaratService
//判断结果并推送结果
$res = self::doOpening($event,$tableInfo);
if ($res['status'] == false){
Logger::warn(Logger::CAT_GAME, 'opening_baccarat_fail', ['table_id' => $tableInfo['id'], 'msg' => $res['msg']]);
$ws->emit('openingBaccarat',['status' => false, 'msg' => $res['msg']]);
return;
}
@@ -52,6 +54,7 @@ class OpeningBaccaratService
);
$ws->emit('openingBaccarat',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
$ws->to(SocketSession::HOUSE_NAME)->emit('openingBaccaratResult',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
Logger::info(Logger::CAT_GAME, 'opening_baccarat', ['table_id' => $tableInfo['id'], 'opening' => $opening, 'pair' => $pair, 'luck_six' => $luck_six]);
//处理注单
self::doBet($ws,$tableInfo,$lastNumberTabInfo);
//处理好路
@@ -185,11 +188,7 @@ class OpeningBaccaratService
}
$amount = $v['banker_amount'] + $v['player_amount'] + $v['tie_amount'] + $v['banker_pair_amount'] + $v['player_pair_amount'] + $v['luck_six_amount'] + $v['big_amount'] + $v['small_amount'];
$winMoney = 0;
// 双边洗码
$ximaliang = 0;
if($userInfo['type_xima'] == 1){
$ximaliang = abs($v['banker_amount'] - $v['player_amount']);
}
if($numberTabInfo['result'] == 1){
// 庄赢
if ($v['banker_amount'] > 0){
@@ -203,26 +202,26 @@ class OpeningBaccaratService
$winMoney = round($v['banker_amount'] * (1 + $userInfo['price_banker']),2) + $winMoney;
}
}
// 单边洗码
if($userInfo['type_xima'] == 2){
$ximaliang = $v['player_amount'];
if($userInfo['type_xima'] == 1){
$ximaliang = $amount;
}else{
$ximaliang += $v['player_amount'] + $v['tie_amount'];
}
}elseif($numberTabInfo['result'] == 2){
// 闲赢
if($v['player_amount'] > 0){
$winMoney = $v['player_amount'] * (1 + $userInfo['price_player']) + $winMoney;
}
// 单边洗码
if($userInfo['type_xima'] == 2){
$ximaliang = $v['banker_amount'];
if($userInfo['type_xima'] == 1){
$ximaliang = $amount;
}else{
$ximaliang += $v['banker_amount'] + $v['tie_amount'];
}
}elseif($numberTabInfo['result'] == 3) {
$ximaliang = 0;
// 和赢
// 和赢:庄闲退回,开和不计洗码
if($v['tie_amount'] > 0){
$winMoney = $v['tie_amount'] * (1 + $userInfo['price_tie_baccarat']) + $winMoney;
}
// 开 和,下注庄和闲不扣钱
if($v['banker_amount'] > 0 && $v['player_amount'] > 0){
$winMoney = $v['player_amount'] + $v['banker_amount'] + $winMoney;
}elseif($v['banker_amount'] > 0){
@@ -231,12 +230,11 @@ class OpeningBaccaratService
$winMoney = $v['player_amount'] + $winMoney;
}
}
// 对子
if($numberTabInfo['pair'] == 3){
// 计算庄对下注的赢钱金额
if ($v['banker_pair_amount'] > 0) {
$winMoney = $v['banker_pair_amount'] * (1 + $userInfo['price_pair']) + $winMoney;
}
//计算闲对下注的赢钱金额
if ($v['player_pair_amount'] > 0) {
$winMoney = $v['player_pair_amount'] * (1 + $userInfo['price_pair']) + $winMoney;
}
@@ -244,22 +242,32 @@ class OpeningBaccaratService
if ($v['banker_pair_amount'] > 0) {
$winMoney = $v['banker_pair_amount'] * (1 + $userInfo['price_pair']) + $winMoney;
}
if($userInfo['type_xima'] != 1) $ximaliang += $v['player_pair_amount'];
}elseif($numberTabInfo['pair'] == 2){
if ($v['player_pair_amount'] > 0) {
$winMoney = $v['player_pair_amount'] * (1 + $userInfo['price_pair']) + $winMoney;
}
if($userInfo['type_xima'] != 1) $ximaliang += $v['banker_pair_amount'];
}else{
if($userInfo['type_xima'] != 1) $ximaliang += $v['banker_pair_amount'] + $v['player_pair_amount'];
}
// 幸运6
if ($numberTabInfo['luck_six'] == 2 && $v['luck_six_amount'] > 0){
$winMoney = $v['luck_six_amount'] * (1 + $userInfo['price_luck_six_2']) + $winMoney;
}
if ($numberTabInfo['luck_six'] == 3 && $v['luck_six_amount'] > 0){
}elseif ($numberTabInfo['luck_six'] == 3 && $v['luck_six_amount'] > 0){
$winMoney = $v['luck_six_amount'] * (1 + $userInfo['price_luck_six_3']) + $winMoney;
}else{
if($userInfo['type_xima'] != 1) $ximaliang += $v['luck_six_amount'];
}
// 大小
if ($numberTabInfo['big_small'] == 1){
$winMoney = $v['big_amount'] * (1 + $userInfo['price_big']) + $winMoney;
}
if ($numberTabInfo['big_small'] == 2){
if($userInfo['type_xima'] != 1) $ximaliang += $v['small_amount'];
}elseif ($numberTabInfo['big_small'] == 2){
$winMoney = $v['small_amount'] * (1 + $userInfo['price_small']) + $winMoney;
if($userInfo['type_xima'] != 1) $ximaliang += $v['big_amount'];
}else{
if($userInfo['type_xima'] != 1) $ximaliang += $v['big_amount'] + $v['small_amount'];
}
// 计算最终赢钱金额
$winTotal = $winMoney - $amount;
@@ -10,6 +10,7 @@ use app\models\user\User;
use app\services\connect\InitTableService;
use freedom\utils\DiceUtil;
use freedom\utils\SocketSession;
use app\utils\Logger;
use think\swoole\Websocket;
/**
@@ -31,6 +32,7 @@ class OpeningDiceService
//判断结果并推送结果
$res = self::doOpening($event,$tableInfo);
if ($res['status'] == false){
Logger::warn(Logger::CAT_GAME, 'opening_dice_fail', ['table_id' => $tableInfo['id'], 'msg' => $res['msg']]);
$ws->emit('openingDice',['status' => false, 'msg' => $res['msg']]);
return;
}
@@ -47,6 +49,7 @@ class OpeningDiceService
);
$ws->emit('openingDice',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
$ws->to(SocketSession::HOUSE_NAME)->emit('openingDiceResult',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
Logger::info(Logger::CAT_GAME, 'opening_dice', ['table_id' => $tableInfo['id'], 'result' => $resultArray]);
//处理注单
self::doBet($ws,$tableInfo,$lastNumberTabInfo,$resultArray,$resultParse);
}
+13 -16
View File
@@ -13,6 +13,7 @@ use freedom\utils\CardPosition;
use freedom\utils\RedisUtil;
use freedom\utils\SocketSession;
use think\facade\Env;
use app\utils\Logger;
use think\swoole\Websocket;
/**
@@ -35,6 +36,7 @@ class OpeningDtService
//判断结果并推送结果
$res = self::doOpening($event,$tableInfo);
if ($res['status'] == false){
Logger::warn(Logger::CAT_GAME, 'opening_dt_fail', ['table_id' => $tableInfo['id'], 'msg' => $res['msg']]);
$ws->emit('openingDt',['status' => false, 'msg' => $res['msg']]);
return;
}
@@ -52,6 +54,7 @@ class OpeningDtService
);
$ws->emit('openingDt',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
$ws->to(SocketSession::HOUSE_NAME)->emit('openingDtResult',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
Logger::info(Logger::CAT_GAME, 'opening_dt', ['table_id' => $tableInfo['id'], 'opening' => $opening]);
//处理注单
self::doBet($ws,$tableInfo,$lastNumberTabInfo);
//处理好路
@@ -128,19 +131,16 @@ class OpeningDtService
}
$amount = $v['banker_amount'] + $v['player_amount'] + $v['tie_amount'];
$winMoney = 0;
// 双边洗码
$ximaliang = 0;
if($userInfo['type_xima'] == 1){
$ximaliang = abs($v['banker_amount'] - $v['player_amount']);
}
// 龙赢
if ($numberTabInfo['result'] == 1) {
if($v['banker_amount'] > 0){
$winMoney = round($v['banker_amount'] * (1 + $userInfo['price_dragon']),2) + $winMoney;
}
// 单边洗码
if($userInfo['type_xima'] == 2){
$ximaliang = $v['player_amount'];
if($userInfo['type_xima'] == 1){
$ximaliang = $amount;
}else{
$ximaliang = $v['player_amount'] + $v['tie_amount'];
}
}
// 虎赢
@@ -148,18 +148,15 @@ class OpeningDtService
if($v['player_amount'] > 0){
$winMoney = round($v['player_amount'] * (1 + $userInfo['price_tiger']),2) + $winMoney;
}
// 单边洗码
if($userInfo['type_xima'] == 2){
$ximaliang = $v['banker_amount'];
if($userInfo['type_xima'] == 1){
$ximaliang = $amount;
}else{
$ximaliang = $v['banker_amount'] + $v['tie_amount'];
}
}
// 和
// 和:不杀龙虎,全额退回
if ($numberTabInfo['result'] == 3) {
if (Env::get('system.dt_half') == 1) {
$winMoney = round(($v['banker_amount'] + $v['player_amount']) / 2, 2) + $winMoney;
} else {
$winMoney = $v['banker_amount'] + $v['player_amount'] + $winMoney;
}
$winMoney = $v['banker_amount'] + $v['player_amount'] + $winMoney;
$ximaliang = 0;
if ($v['tie_amount'] > 0) {
$winMoney = $v['tie_amount'] * (1 + $userInfo['price_tie_dt']) + $winMoney;
@@ -11,6 +11,7 @@ use app\services\connect\InitTableService;
use freedom\utils\CardPositionNn;
use freedom\utils\RedisUtil;
use freedom\utils\SocketSession;
use app\utils\Logger;
use think\swoole\Websocket;
class OpeningNnService
@@ -26,6 +27,7 @@ class OpeningNnService
//判断结果并推送结果
$res = self::doOpening($event,$tableInfo);
if ($res['status'] == false){
Logger::warn(Logger::CAT_GAME, 'opening_nn_fail', ['table_id' => $tableInfo['id'], 'msg' => $res['msg']]);
$ws->emit('openingNn',['status' => false, 'msg' => $res['msg']]);
return;
}
@@ -41,6 +43,7 @@ class OpeningNnService
$round = array_merge($round,$data);
$ws->emit('openingNn',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
$ws->to(SocketSession::HOUSE_NAME)->emit('openingNnResult',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
Logger::info(Logger::CAT_GAME, 'opening_nn', ['table_id' => $tableInfo['id'], 'result_banker' => $data['result_banker'], 'win_p1' => $data['win_player_1'], 'win_p2' => $data['win_player_2'], 'win_p3' => $data['win_player_3']]);
//处理注单
self::doBet($ws,$tableInfo,$lastNumberTabInfo,$data);
}
@@ -8,6 +8,7 @@ use app\models\process\Boot;
use app\models\process\NumberTab;
use app\models\user\User;
use app\services\connect\InitTableService;
use app\utils\Logger;
use freedom\utils\RouletteUtil;
use freedom\utils\SocketSession;
use think\swoole\Websocket;
@@ -31,6 +32,7 @@ class OpeningRouletteService
//判断结果并推送结果
$res = self::doOpening($event,$tableInfo);
if ($res['status'] == false){
Logger::warn(Logger::CAT_GAME, 'opening_roulette_fail', ['table_id' => $tableInfo['id'], 'msg' => $res['msg']]);
$ws->emit('openingRoulette',['status' => false,'table_id' => $tableInfo['id'], 'msg' => $res['msg']]);
return;
}
@@ -47,6 +49,7 @@ class OpeningRouletteService
);
$ws->emit('openingRoulette',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
$ws->to(SocketSession::HOUSE_NAME)->emit('openingRouletteResult',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
Logger::info(Logger::CAT_GAME, 'opening_roulette', ['table_id' => $tableInfo['id'], 'result' => $round['result'] ?? '']);
//处理注单
self::doBet($ws,$tableInfo,$lastNumberTabInfo,$result,$resultParse);
}
@@ -11,6 +11,7 @@ use app\services\connect\InitTableService;
use freedom\utils\CardPositionTc;
use freedom\utils\RedisUtil;
use freedom\utils\SocketSession;
use app\utils\Logger;
use think\swoole\Websocket;
class OpeningTcService
@@ -26,6 +27,7 @@ class OpeningTcService
//判断结果并推送结果
$res = self::doOpening($event,$tableInfo);
if ($res['status'] == false){
Logger::warn(Logger::CAT_GAME, 'opening_tc_fail', ['table_id' => $tableInfo['id'], 'msg' => $res['msg']]);
$ws->emit('openingTc',['status' => false, 'msg' => $res['msg']]);
return;
}
@@ -41,6 +43,7 @@ class OpeningTcService
$round = array_merge($round,$data);
$ws->emit('openingTc',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
$ws->to(SocketSession::HOUSE_NAME)->emit('openingTcResult',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
Logger::info(Logger::CAT_GAME, 'opening_tc', ['table_id' => $tableInfo['id'], 'result_banker' => $data['result_banker'], 'win_p1' => $data['win_player_1'], 'win_p2' => $data['win_player_2'], 'win_p3' => $data['win_player_3']]);
//处理注单
self::doBet($ws,$tableInfo,$lastNumberTabInfo,$data);
}
@@ -10,6 +10,7 @@ use app\models\user\User;
use app\services\connect\InitTableService;
use freedom\utils\SocketSession;
use freedom\utils\ToningUtil;
use app\utils\Logger;
use think\swoole\Websocket;
/**
@@ -31,6 +32,7 @@ class OpeningToningService
//判断结果并推送结果
$res = self::doOpening($event,$tableInfo);
if ($res['status'] == false){
Logger::warn(Logger::CAT_GAME, 'opening_toning_fail', ['table_id' => $tableInfo['id'], 'msg' => $res['msg']]);
$ws->emit('openingToning',['status' => false, 'msg' => $res['msg']]);
return;
}
@@ -46,6 +48,7 @@ class OpeningToningService
);
$ws->emit('openingToning',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
$ws->to(SocketSession::HOUSE_NAME)->emit('openingToningResult',['status' => true, 'table_id' => $tableInfo['id'], 'round' => $round]);
Logger::info(Logger::CAT_GAME, 'opening_toning', ['table_id' => $tableInfo['id'], 'result' => $result]);
//处理注单
self::doBet($ws,$tableInfo,$lastNumberTabInfo);
}
+1 -1
View File
@@ -27,7 +27,7 @@ class CountdownService
//处理倒计时
$waitTime = intval($tableInfo['wait_time']);
//将倒计时用作是redis的过期时间
RedisUtil::save('countdown_'.$numberTabInfo['id'],$waitTime,$waitTime);
RedisUtil::save('countdown_'.$numberTabInfo['id'],$waitTime,$waitTime + 10);
while($waitTime >= 0){
$countdown = Cache::store('redis')->get('countdown_'.$numberTabInfo['id']);
if ($countdown){
+4 -1
View File
@@ -6,6 +6,7 @@ namespace app\services\process;
use app\models\process\NumberTab;
use app\services\connect\InitTableService;
use app\utils\Logger;
use freedom\utils\RedisUtil;
use freedom\utils\SocketSession;
@@ -41,8 +42,10 @@ class EndBetService
'number_tab_status' => InitTableService::numberTabStatus($numberTabInfo)
]
]);
Logger::info(Logger::CAT_GAME, 'end_bet', ['table_id' => $tableInfo['id'], 'nt_id' => $numberTabId]);
}else{
$ws->emit('endBet', ['status' => false, 'msg' => $modelRes['msg']]);
Logger::warn(Logger::CAT_GAME, 'end_bet_fail', ['table_id' => $tableInfo['id'], 'msg' => $modelRes['msg'], 'bet_status' => $modelRes['bet_status'] ?? null]);
$ws->emit('endBet', ['status' => false, 'msg' => $modelRes['msg'], 'bet_status' => $modelRes['bet_status'] ?? null]);
}
}
}
@@ -6,6 +6,7 @@ namespace app\services\process;
use app\models\process\NumberTab;
use app\services\connect\InitTableService;
use app\utils\Logger;
use freedom\utils\SocketSession;
/**
@@ -26,15 +27,15 @@ class ResetNumberTabService
$numberTabInfo = InitTableService::initTable($tableInfo);
if (!$numberTabInfo){
$ws->emit('resetNumberTab', ['status' => false, 'msg' => 'not_number_tab_data']);
Logger::warn(Logger::CAT_GAME, 'reset_number_tab_fail', ['table_id' => $tableInfo['id'], 'reason' => 'not_number_tab_data']);
return;
}
// 调试日志
\think\facade\Log::write('resetNumberTab debug: bet_status=' . $numberTabInfo['bet_status'] . ', rob_status=' . $numberTabInfo['rob_status'] . ', id=' . $numberTabInfo['id'] . ', boot_id=' . $numberTabInfo['boot_id'], 'info');
Logger::info(Logger::CAT_GAME, 'reset_number_tab_attempt', ['table_id' => $tableInfo['id'], 'bet_status' => $numberTabInfo['bet_status'], 'nt_id' => $numberTabInfo['id']]);
if($numberTabInfo['bet_status'] == 1 || $numberTabInfo['bet_status'] == 2 || $numberTabInfo['bet_status'] == 3 || ($numberTabInfo['bet_status'] == 0 && ($numberTabInfo['rob_status'] == 1 || $numberTabInfo['rob_status'] == 2))){
//事务处理
$res = NumberTab::resetNumberTab($numberTabInfo);
\think\facade\Log::write('resetNumberTab result: ' . ($res ? 'true' : 'false'), 'info');
if (!$res){
Logger::warn(Logger::CAT_GAME, 'reset_number_tab_fail', ['table_id' => $tableInfo['id'], 'nt_id' => $numberTabInfo['id']]);
$ws->emit('resetNumberTab', ['status' => false, 'msg' => 'reset_number_fail']);
return;
}
@@ -55,8 +56,10 @@ class ResetNumberTabService
$ws->to(SocketSession::HOUSE_NAME)->emit('resetNumberTab', $responseData);
// 同时发送给请求者
$ws->emit('resetNumberTab', $responseData);
Logger::info(Logger::CAT_GAME, 'reset_number_tab', ['table_id' => $tableInfo['id'], 'nt_id' => $numberTabInfo['id']]);
}else{
$ws->emit('resetNumberTab', ['status' => false, 'msg' => 'reset_number_fail']);
Logger::warn(Logger::CAT_GAME, 'reset_number_tab_fail', ['table_id' => $tableInfo['id'], 'number_tab_id' => $numberTabInfo['id'], 'reason' => 'invalid_bet_status']);
}
}
}
+3
View File
@@ -6,6 +6,7 @@ namespace app\services\process;
use app\models\process\NumberTab;
use app\services\connect\InitTableService;
use app\utils\Logger;
use freedom\utils\SocketSession;
/**
@@ -44,7 +45,9 @@ class StartBetService
$ws->emit('startBet', $responseData);
//启动倒计时(该处以后会废弃掉)
CountdownService::countdown($numberTabId,$tableInfo,$modelRes['data']);
Logger::info(Logger::CAT_GAME, 'start_bet', ['table_id' => $tableInfo['id'], 'table_name' => $tableInfo['table_name'], 'nt_id' => $numberTabId]);
}else{
Logger::warn(Logger::CAT_GAME, 'start_bet_fail', ['table_id' => $tableInfo['id'], 'msg' => $modelRes['msg']]);
$ws->emit('startBet', ['status' => false, 'msg' => $modelRes['msg']]);
}
}
+7 -1
View File
@@ -4,6 +4,7 @@
namespace app\services\reset;
use app\models\process\NumberTab;
use app\utils\Logger;
use freedom\utils\SocketSession;
use think\swoole\Websocket;
@@ -27,25 +28,29 @@ class ResetBaccaratService
$numberTabInfo = NumberTab::getByTableIdOrderByIdDesc_two($tableInfo);
if (!$numberTabInfo){
$ws->emit('resetBaccarat', ['status' => false, 'msg' => 'not_number_tab_data']);
Logger::warn(Logger::CAT_GAME, 'reset_baccarat_fail', ['table_id' => $tableInfo['id'], 'reason' => 'not_number_tab_data']);
return;
}
if(count($numberTabInfo) != 2){
$ws->emit('resetBaccarat', ['status' => false, 'msg' => '上一铺数据不存在']);
Logger::warn(Logger::CAT_GAME, 'reset_baccarat_fail', ['table_id' => $tableInfo['id'], 'reason' => 'previous_round_not_found']);
return;
}
if($numberTabInfo[0]['boot_id'] != $numberTabInfo[1]['boot_id']){
$ws->emit('resetBaccarat', ['status' => false, 'msg' => '上一铺不在同一靴']);
Logger::warn(Logger::CAT_GAME, 'reset_baccarat_fail', ['table_id' => $tableInfo['id'], 'reason' => 'boot_mismatch']);
return;
}
$numberTabInfo = $numberTabInfo[1];
if($event['opening'] == $numberTabInfo['result'] && $event['pair'] == $numberTabInfo['pair'] && $event['luck_six'] == $numberTabInfo['luck_six']){
if($event['opening'] == $numberTabInfo['result'] && $event['pair'] == $numberTabInfo['pair'] && ($event['luck_six'] ?? 0) == $numberTabInfo['luck_six'] && ($event['dragon_seven'] ?? 0) == $numberTabInfo['dragon_seven'] && ($event['panda_eight'] ?? 0) == $numberTabInfo['panda_eight']){
$ws->emit('resetBaccarat', ['status' => false, 'msg' => '结果一样']);
return;
}
$res = NumberTab::resetBaccarat($event,$numberTabInfo,$tableInfo);
if (!$res){
$ws->emit('resetBaccarat', ['status' => false, 'msg' => '修改上一局结果失败']);
Logger::warn(Logger::CAT_GAME, 'reset_baccarat_fail', ['table_id' => $tableInfo['id'], 'number_tab_id' => $numberTabInfo['id'], 'reason' => 'db_update_failed']);
return;
}
@@ -56,5 +61,6 @@ class ResetBaccaratService
'previous_number_tab_id' => $numberTabInfo['id']
]
]);
Logger::info(Logger::CAT_GAME, 'reset_baccarat', ['table_id' => $tableInfo['id'], 'opening' => $event['opening'], 'pair' => $event['pair']]);
}
}
+6
View File
@@ -4,6 +4,7 @@
namespace app\services\reset;
use app\models\process\NumberTab;
use app\utils\Logger;
use freedom\utils\SocketSession;
use think\swoole\Websocket;
@@ -27,14 +28,17 @@ class ResetDtService
$numberTabInfo = NumberTab::getByTableIdOrderByIdDesc_two($tableInfo);
if (!$numberTabInfo){
$ws->emit('resetDt', ['status' => false, 'msg' => 'not_number_tab_data']);
Logger::warn(Logger::CAT_GAME, 'reset_dt_fail', ['table_id' => $tableInfo['id'], 'reason' => 'not_number_tab_data']);
return;
}
if(count($numberTabInfo) != 2){
$ws->emit('resetDt', ['status' => false, 'msg' => '上一铺数据不存在']);
Logger::warn(Logger::CAT_GAME, 'reset_dt_fail', ['table_id' => $tableInfo['id'], 'reason' => 'previous_round_not_found']);
return;
}
if($numberTabInfo[0]['boot_id'] != $numberTabInfo[1]['boot_id']){
$ws->emit('resetDt', ['status' => false, 'msg' => '上一铺不在同一靴']);
Logger::warn(Logger::CAT_GAME, 'reset_dt_fail', ['table_id' => $tableInfo['id'], 'reason' => 'boot_mismatch']);
return;
}
@@ -46,6 +50,7 @@ class ResetDtService
$res = NumberTab::resetDt($event,$numberTabInfo,$tableInfo);
if (!$res){
$ws->emit('resetDt', ['status' => false, 'msg' => '修改上一局结果失败']);
Logger::warn(Logger::CAT_GAME, 'reset_dt_fail', ['table_id' => $tableInfo['id'], 'number_tab_id' => $numberTabInfo['id'], 'reason' => 'db_update_failed']);
return;
}
@@ -56,5 +61,6 @@ class ResetDtService
'previous_number_tab_id' => $numberTabInfo['id']
]
]);
Logger::info(Logger::CAT_GAME, 'reset_dt', ['table_id' => $tableInfo['id'], 'opening' => $event['opening']]);
}
}
@@ -99,6 +99,7 @@ class WaybillRemindService{
}
}
$bigRoad_lenth = count($bigRoadLocation);
try {
if($bigRoad_lenth >= 4){
//y=1
if($bigRoadLocation[$bigRoad_lenth-1]['show_y'] == 1){
@@ -616,6 +617,9 @@ class WaybillRemindService{
}
}
}
} catch (\Throwable $e) {
// 路子珠数据不足时跳过 pattern 检测
}
$table = WaybillRemind::where('table_id',$table_id)->find();
$create_time = time();
$bigRoadLocation = json_encode($bigRoadLocation);
+40
View File
@@ -0,0 +1,40 @@
<?php
namespace app\utils;
class Logger
{
const CAT_CONNECT = 'connect';
const CAT_GAME = 'game';
const CAT_BET = 'bet';
const CAT_ERROR = 'error';
const CAT_FRONTEND = 'frontend';
public static function log(string $category, string $level, string $message, array $context = []): void
{
$date = date('Y-m-d');
$time = date('Y-m-d H:i:s');
$dir = root_path() . 'runtime' . DIRECTORY_SEPARATOR . 'log' . DIRECTORY_SEPARATOR . $category;
if (!is_dir($dir)) {
mkdir($dir, 0755, true);
}
$file = $dir . DIRECTORY_SEPARATOR . $date . '.log';
$contextStr = $context ? ' ' . json_encode($context, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) : '';
$line = "[{$time}][{$level}] {$message}{$contextStr}" . PHP_EOL;
file_put_contents($file, $line, FILE_APPEND | LOCK_EX);
}
public static function info(string $category, string $message, array $context = []): void
{
self::log($category, 'INFO', $message, $context);
}
public static function warn(string $category, string $message, array $context = []): void
{
self::log($category, 'WARN', $message, $context);
}
public static function error(string $category, string $message, array $context = []): void
{
self::log($category, 'ERROR', $message, $context);
}
}
+3 -3
View File
@@ -25,9 +25,9 @@ return [
// 单文件日志写入
'single' => false,
// 独立日志级别
'apart_level' => [],
'apart_level' => ['error', 'sql'],
// 最大日志文件数量
'max_files' => 0,
'max_files' => 30,
// 使用JSON格式记录
'json' => false,
// 日志处理
@@ -37,7 +37,7 @@ return [
// 日志输出格式化
'format' => '[%s][%s] %s',
// 是否实时写入
'realtime_write' => false,
'realtime_write' => true,
],
// 其它日志通道配置
],
+61
View File
@@ -0,0 +1,61 @@
# 洗码量(码量)计算规则
> 客户在 2026-05-28 明确的完整规则,由此重写了开奖结算逻辑。
> 实现位置:`app/services/opening/OpeningBaccaratService.php``OpeningDtService.php`
## 核心定义
**洗码量 = 投注额(按原投注额度计,不乘赔率)**
系统有两种洗码模式,存于 `cg_user.type_xima`
| type_xima | 模式 | 规则 |
|-----------|------|------|
| 1 | 双边洗码 | **所有投注**都计洗码,开和不计 |
| 2 | 单边洗码 | 只有**输口**计洗码,开和不计 |
> 注意:历史代码里 type_xima 的语义曾被误用为 `1=双边/2=单边`,已确认数据库中
> 单边洗码会员是 `type_xima=2`
## 百家乐(game_id=1
下注位置:庄、闲、和、庄对、闲对、幸运6、大、小
**单边洗码(type_xima=2)— 输口计洗码:**
- 庄赢:洗码 = 闲 + 和 + 没中的对子 + 没中的幸运6 + 没中的大小
- 闲赢:洗码 = 庄 + 和 + 没中的对子 + 没中的幸运6 + 没中的大小
- 和局:庄闲退回不计,洗码 = 没中的对子 + 没中的幸运6 + 没中的大小
**双边洗码(type_xima=1)— 所有投注都计洗码:**
- 庄赢/闲赢:洗码 = 全部投注额(`$amount`
- 和局:庄闲退回部分不计,其余照常(开和不计核心投注)
## 龙虎(game_id=2
下注位置:龙、虎、和
- **和局不杀龙虎**,龙虎全额退回(dt_half 旧逻辑"和局杀一半"已废除)
- 单边洗码:龙赢→洗码=虎+和;虎赢→洗码=龙+和
- 双边洗码:龙赢/虎赢→洗码=全部投注额;和局→0
- 赔率:龙/虎 1:0.97,和 1:40
## 百家乐赔率补充
- 庄 1:0.95,闲 1:1,和 1:8
- 免佣模式(baccarat_type=1):庄赢且非幸运6 时 1:1,幸运6 时 1:0.5
## 关键代码模式
```php
// 输口判断:开出的结果 != 投注位置 → 该位置投注额计入 ximaliang
if($userInfo['type_xima'] == 1){
$ximaliang = $amount; // 双边:全部投注
}else{
$ximaliang += <各输口投注额>; // 单边:仅输口
}
// 开和:庄闲退回,ximaliang 不累加这部分
```
## 数据落地
- 洗码记录写入 `cg_xima` 表,字段 `ximaliang`(原投注额)、`maliang`=ximaliang×码率)、`net_maliang`
- 开奖时(OpeningXxxService→Bet::openingBet)实时按各级代理当前码率计算并落库
- **码率/占成在开奖时实时读 DB**,改了码率只影响之后开的局,已开未结的局不变
BIN
View File
Binary file not shown.
+6
View File
@@ -0,0 +1,6 @@
#!/bin/bash
# OG 日志清理 - 删除30天前的日志文件
LOG_DIR="/www/wwwroot/Socket/runtime/log"
find "$LOG_DIR" -name "*.log" -type f -mtime +30 -delete 2>/dev/null
find "$LOG_DIR" -type d -empty -delete 2>/dev/null
echo "[$(date)] log cleanup done, current size: $(du -sh $LOG_DIR | cut -f1)"
Executable
+63
View File
@@ -0,0 +1,63 @@
#!/bin/bash
# OG 日志快速查看工具
# 用法: ./logview.sh [分类] [选项]
# 分类: frontend | game | connect | bet | error | all
# 选项: -f 实时跟踪 | -t N 查看最后N行 | -g "关键词" 搜索
#
# 示例:
# ./logview.sh frontend # 查看今天的前端错误
# ./logview.sh game -f # 实时跟踪游戏事件
# ./logview.sh game -g "table_id.*12" # 搜索805牛牛台
# ./logview.sh connect -t 50 # 最近50条连接日志
# ./logview.sh all -g "WARN\|ERROR" # 所有分类的警告和错误
# ./logview.sh frontend -d 2026-05-13 # 查看指定日期
LOG_DIR="/www/wwwroot/Socket/runtime/log"
DATE=$(date +%Y-%m-%d)
CATEGORY=${1:-all}
shift 2>/dev/null
MODE="tail"
LINES=30
GREP=""
CUSTOM_DATE=""
while [[ $# -gt 0 ]]; do
case $1 in
-f) MODE="follow"; shift ;;
-t) LINES=$2; shift 2 ;;
-g) GREP=$2; shift 2 ;;
-d) CUSTOM_DATE=$2; shift 2 ;;
*) shift ;;
esac
done
[[ -n "$CUSTOM_DATE" ]] && DATE=$CUSTOM_DATE
if [[ "$CATEGORY" == "all" ]]; then
CATS="frontend game connect bet error"
else
CATS=$CATEGORY
fi
for cat in $CATS; do
FILE="$LOG_DIR/$cat/$DATE.log"
if [[ ! -f "$FILE" ]]; then
echo "[$cat] 无日志: $FILE"
continue
fi
if [[ "$MODE" == "follow" ]]; then
echo "=== 实时跟踪 $cat ==="
tail -f "$FILE"
exit 0
fi
echo "=== $cat ($DATE) ==="
if [[ -n "$GREP" ]]; then
grep -i "$GREP" "$FILE" | tail -$LINES
else
tail -$LINES "$FILE"
fi
echo
done
Regular → Executable
+1 -1
View File
@@ -1 +1 @@
open_basedir=/www/wwwroot/tnt-game-socket/:/tmp/
open_basedir=/www/wwwroot/Socket/:/tmp/
+7
View File
@@ -0,0 +1,7 @@
<?php
//花式
$pattern = intval(substr(113,0,1));
//点数
$number = intval(substr(413,1,2));
var_dump($pattern);
var_dump($number);
+4
View File
@@ -453,6 +453,10 @@ margin-left: 0;
.countdown{ display: none !important; }
.countdown .num{ display: none !important; }
.result-box{ display: none !important; }
.bottom-row{
display: flex;
width: 100%;
+62
View File
@@ -0,0 +1,62 @@
(function() {
var reportUrl = '/log/report';
var queue = [];
var sending = false;
var ignorePatterns = [
'play() request was interrupted',
'The play() request was interrupted',
'NotAllowedError',
'AbortError'
];
function shouldIgnore(msg) {
if (!msg) return false;
for (var i = 0; i < ignorePatterns.length; i++) {
if (msg.indexOf(ignorePatterns[i]) !== -1) return true;
}
return false;
}
function send(data) {
if (queue.length >= 10) return;
if (shouldIgnore(data.message)) return;
data.source = 'handle';
data.time = new Date().toISOString();
data.url = location.href;
queue.push(data);
flush();
}
function flush() {
if (sending || queue.length === 0) return;
sending = true;
var item = queue.shift();
var xhr = new XMLHttpRequest();
xhr.open('POST', reportUrl);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onloadend = function() { sending = false; flush(); };
xhr.onerror = function() { sending = false; };
xhr.timeout = 3000;
xhr.send(JSON.stringify(item));
}
window.onerror = function(message, source, lineno, colno, error) {
send({
type: 'error',
message: String(message),
stack: error && error.stack ? error.stack.substring(0, 2000) : '',
file: source,
line: lineno,
col: colno
});
};
window.addEventListener('unhandledrejection', function(event) {
var reason = event.reason;
send({
type: 'unhandledrejection',
message: reason && reason.message ? reason.message : String(reason),
stack: reason && reason.stack ? reason.stack.substring(0, 2000) : ''
});
});
})();
+66 -104
View File
@@ -51,8 +51,7 @@ var initScanParams = function() {
isCardScaned = false;
currentPositionToChange = -1;
$(".countdown").css({"opacity":0,"display":"none"});
$(".countdown .grab-count").removeClass("count-active");
$("#resultAreaTimer").hide();
}
// NN修改牌
var openAllCardsPanel = function(dom) {
@@ -183,7 +182,11 @@ websocket.on('reconnect', (timeout) => {
var startBet = function(){
websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id});
};
var isEndingBet = false;
var endBet = function (){
if(isEndingBet) return;
isEndingBet = true;
setTimeout(function(){ isEndingBet = false; }, 2000);
websocket.emit('endBet',{table_id : table_id, number_tab_id : number_tab_id});
};
var startRob = function(){
@@ -228,7 +231,11 @@ var resetBoot = function(){
layer.close(index);
});
};
var isOpening = false;
var opening = function(){
if(isOpening) return;
isOpening = true;
setTimeout(function(){ isOpening = false; }, 3000);
$('.control-box .btn-box2 span').removeClass('on');
if(game_id == 1){
websocket.emit('openingBaccarat',{table_id : table_id, number_tab_id : number_tab_id});
@@ -463,8 +470,7 @@ websocket.on('resetNumberTab',function(data){
}
//
$(".countdown").css({"opacity":0,"display":"none"});
$(".countdown .grab-count").removeClass("count-active");
$("#resultAreaTimer").hide();
$(".begincard .box").animate({"opacity":"0"},function(){
$(".begincard").fadeOut();
@@ -526,9 +532,21 @@ websocket.on('resetBoot',function(data){
}
}
});
var _cdTimer = null;
var _cdVal = 0;
websocket.on('startBetCountDown',function(data){
if(data.status == true && data.table_id == table_id){
_cdVal = data.count_down;
countDown(data.count_down);
if(_cdTimer) clearTimeout(_cdTimer);
if(_cdVal > 0){
_cdTimer = setTimeout(function _tick(){
_cdVal--;
if(_cdVal >= 0) countDown(_cdVal);
if(_cdVal > 0) _cdTimer = setTimeout(_tick, 1000);
else _cdTimer = null;
}, 2000);
}
}
});
websocket.on('endBet',function(data){
@@ -537,15 +555,10 @@ websocket.on('endBet',function(data){
var doIntervalTime = parseInt(interval_time) + 1;
var intervalTime = setInterval(function(){
doIntervalTime--;
$(".countdown .num").html(doIntervalTime)
$(".countdown").css({"opacity":1,"display":"block"});
$(".countdown .grab-count").addClass("count-active");
$(".countdown .round-txt-item").addClass("color-red");
$("#resultAreaTimer").html(doIntervalTime).show();
if(doIntervalTime == 0) {
clearInterval(intervalTime);
$(".countdown").css({"opacity":0,"display":"none"});
$(".countdown .grab-count").removeClass("count-active");
$(".countdown .round-txt-item").removeClass("color-red");
$("#resultAreaTimer").hide();
if(game_id == 4 || game_id == 5){
$(".banker_result").html('');
$(".player_1_result").html('');
@@ -555,29 +568,26 @@ websocket.on('endBet',function(data){
$('#opening').val(0);
$('#result_banker_pair').val(0);
$('#result_player_pair').val(0);
$(".countdown").css({"opacity":0,"display":"none"});
$(".countdown .grab-count").removeClass("count-active");
$("#resultAreaTimer").hide();
setBetStatus(data.round.number_tab_status);
c = parseInt($('#wait_time').val());
}
},1000);
} else {
$(".countdown").css({"opacity":0,"display":"none"});
$(".countdown .grab-count").removeClass("count-active");
$("#resultAreaTimer").hide();
mp3List = ['stop_2.mp3'];
audioMp3(mp3List).Play();
if(game_id == 4 || game_id == 5){
$(".banker_result").html('');
$(".player_1_result").html('');
$(".player_2_result").html('');
$(".player_3_result").html('');
$(".player_3_result").html('');
}
if(game_id == 6){
$('#toning_result').val('');
$(".toning-result-num").removeClass("active");
}
$(".countdown").css({"opacity":0,"display":"none"});
$(".countdown .grab-count").removeClass("count-active");
$("#resultAreaTimer").hide();
setBetStatus(data.round.number_tab_status);
// 识别相关
@@ -595,7 +605,11 @@ websocket.on('endBet',function(data){
}else{
if (data.table_id != undefined && data.table_id == table_id) {
layer.msg(lang[data.msg]);
if(data.msg == 'end_bet_error' && data.bet_status != undefined){
$('#number_tab_status').val(data.bet_status);
} else {
layer.msg(lang[data.msg]);
}
}
}
});
@@ -717,7 +731,7 @@ $(function(){
if(!cookieValue){
$.cookie("enter_time", 1, { expires: 1/86400*3 });
}else{
layer.msg('Please hold on');
layer.msg('请稍等');
return false
}
@@ -740,6 +754,8 @@ $(function(){
}else{
layer.msg("请稍等!");
}
}else if (numberTabStatus == 1) {
endBet();
}else if (numberTabStatus == 2) {
opening();
}
@@ -779,11 +795,12 @@ $(function(){
var number_tab_status=$("#number_tab_status").val();
if((number_rob_status==1&&number_tab_status==0)||(number_rob_status==2&&number_tab_status==0)){
endRob();
}else{
}else if(number_tab_status == 1){
endBet();
}
}else{
endBet();
var _s = $("#number_tab_status").val();
if(_s == 1) endBet();
}
}
if(game_id == 6){
@@ -864,7 +881,7 @@ $(function(){
}
})
$(window).resize(function(){
requestData(ludan);
if(ludan) requestData(ludan);
})
audio.addEventListener("ended", nextAudio);
getTime();
@@ -918,72 +935,30 @@ function loginout(){
});
};
function showPng(opening, pair){
if(opening == 1 && pair == 0) {
$('#openingPng').attr('src','/static/result_img/banker.png');
mp3List = ['banker_win.mp3'];
}
if(opening == 1 && pair == 1) {
$('#openingPng').attr('src','/static/result_img/banker_bpair.png');
mp3List = ['banker_win.mp3','banker_pair.mp3'];
}
if(opening == 1 && pair == 2) {
$('#openingPng').attr('src','/static/result_img/banker_ppair.png');
mp3List = ['banker_win.mp3','player_pair.mp3'];
}
if(opening == 1 && pair == 3) {
$('#openingPng').attr('src','/static/result_img/banker_bpair_ppair.png');
mp3List = ['banker_win.mp3','banker_pair.mp3','player_pair.mp3'];
}
if(opening == 2 && pair == 0) {
$('#openingPng').attr('src','/static/result_img/player.png');
mp3List = ['player_win.mp3'];
}
if(opening == 2 && pair == 1) {
$('#openingPng').attr('src','/static/result_img/player_bpair.png');
mp3List = ['player_win.mp3','banker_pair.mp3'];
}
if(opening == 2 && pair == 2) {
$('#openingPng').attr('src','/static/result_img/player_ppair.png');
mp3List = ['player_win.mp3','player_pair.mp3'];
}
if(opening == 2 && pair == 3) {
$('#openingPng').attr('src','/static/result_img/player_bpair_ppair.png');
mp3List = ['player_win.mp3','banker_pair.mp3','player_pair.mp3'];
}
if(opening == 3 && pair == 0) {
$('#openingPng').attr('src','/static/result_img/tie.png');
mp3List = ['tie.mp3'];
}
if(opening == 3 && pair == 1) {
$('#openingPng').attr('src','/static/result_img/tie_bpair.png');
mp3List = ['tie.mp3','banker_pair.mp3'];
}
if(opening == 3 && pair == 2) {
$('#openingPng').attr('src','/static/result_img/tie_ppair.png');
mp3List = ['tie.mp3','player_pair.mp3'];
}
if(opening == 3 && pair == 3) {
$('#openingPng').attr('src','/static/result_img/tie_bpair_ppair.png');
mp3List = ['tie.mp3','banker_pair.mp3','player_pair.mp3'];
}
var winText = '', winColor = '', pairHtml = '';
var bpLabel = (lang.banker_pair || lang.banker+'对');
var ppLabel = (lang.player_pair || lang.player+'对');
if(opening == 1){ winText = lang.banker+'赢'; winColor = '#b20a00'; mp3List = ['banker_win.mp3']; }
if(opening == 2){ winText = lang.player+'赢'; winColor = '#0543bc'; mp3List = ['player_win.mp3']; }
if(opening == 3){ winText = lang.tie; winColor = '#0A5101'; mp3List = ['tie.mp3']; }
if(pair == 1 || pair == 3) { pairHtml += '<span style="color:#b20a00">' + bpLabel + '</span> '; mp3List.push('banker_pair.mp3'); }
if(pair == 2 || pair == 3) { pairHtml += '<span style="color:#0543bc">' + ppLabel + '</span>'; mp3List.push('player_pair.mp3'); }
audioMp3(mp3List).Play();
var html = '<div style="text-align:center"><div style="font-size:3vw;font-weight:bold;color:'+winColor+'">'+winText+'</div>';
if(pairHtml) html += '<div style="font-size:2vw;margin-top:4px">'+pairHtml+'</div>';
html += '</div>';
$("#resultAreaTimer").hide();
$("#resultAreaImg").html(html);
}
function showPngDt (opening){
if(opening == 1) {
$('#openingPng').attr('src','/static/handle/img/dragon_win.png');
mp3List = ['dragon_win.mp3'];
}
if(opening == 2) {
$('#openingPng').attr('src','/static/handle/img/tiger_win.png');
mp3List = ['tiger_win.mp3'];
}
if(opening == 3) {
$('#openingPng').attr('src','/static/handle/img/tie.png');
mp3List = ['tie.mp3'];
}
var winText = '', winColor = '';
if(opening == 1){ winText = lang.dragon+'赢'; winColor = '#b20a00'; mp3List = ['dragon_win.mp3']; }
if(opening == 2){ winText = lang.tiger+'赢'; winColor = '#0543bc'; mp3List = ['tiger_win.mp3']; }
if(opening == 3){ winText = lang.tie; winColor = '#0A5101'; mp3List = ['tie.mp3']; }
audioMp3(mp3List).Play();
$("#resultAreaTimer").hide();
$("#resultAreaImg").html('<div style="text-align:center;font-size:3vw;font-weight:bold;color:'+winColor+'">'+winText+'</div>');
}
function gameResult(data){
@@ -1013,13 +988,8 @@ function gameResult(data){
var src='/static/result_img/'+result_imgsrc+'.png'
$(".begincard .player-card .draw .text ").html(lang.player_all+' '+data.round.player+' '+lang.point)
$(".begincard .banker-card .draw .text ").html(lang.banker_all+' '+data.round.banker+' '+lang.point);
$('#openingElement').show();
$('#openingElement').addClass("blink");
isopentime=true;
setTimeout(function(){
$('#openingElement').removeClass("blink");
$('#openingElement').hide();
},3000)
// 清除状态
card_info=[];///清除牌数据
@@ -1107,9 +1077,8 @@ function getLang(){
}
//倒计时
function countDown(time) {
$(".countdown .num").html(time)
$(".countdown").css({"opacity":1,"display":"block"});
$(".countdown .grab-count").addClass("count-active");
$("#resultAreaTimer").html(time).show();
$("#resultAreaImg").empty();
if(time == 10){
mp3List = ['time_tip_10.mp3'];
audioMp3(mp3List).Play();
@@ -1121,8 +1090,7 @@ function countDown(time) {
if(time<=0){
mp3List = ['stop_2.mp3'];
audioMp3(mp3List).Play();
$(".countdown").css({"opacity":0,"display":"none"});
$(".countdown .grab-count").removeClass("count-active");
$("#resultAreaTimer").hide();
return;
}
}
@@ -1562,19 +1530,13 @@ function nextAudio(){
}
function countDownRob(time) {
var table_id = $('#table_id').val();
$(".countdown .num").html(time);
$(".countdown").css({"opacity":1,"display":"block"});
$(".countdown .grab-count").addClass("count-active");
//$(".countdown").fadeIn();
$("#resultAreaTimer").html(time).show();
if(time < 5 && time > 0){
mp3List = ['time.mp3'];
audioMp3(mp3List).Play();
}
if(time<=0){
// mp3List = ['end_rob.mp3'];
// audioMp3(mp3List).Play();
$(".countdown").css({"opacity":0,"display":"none"});
$(".countdown .grab-count").removeClass("count-active");
$("#resultAreaTimer").hide();
webSocket.send('{"connect":"space","mode":"endRob","number_tab_id":"'+parseInt(number_tab_id)+'","table_id":"'+parseInt(table_id)+'"}');
return;
}
@@ -2015,8 +1977,8 @@ function SoloPath(ctb,unit,x,y,type,corners,luck_six,dragon_seven,panda_eight){
} else if(game_id==1 && dragon_seven > 0){
var color='#b8860b';
var fonts="7";
ctb.strokeStyle = "#c9980a";
ctb.lineWidth = 2;
ctb.strokeStyle = "#ff2202";
ctb.lineWidth = 4;
} else if(game_id==1 && panda_eight > 0){
var color='#34495e';
var fonts="8";
+63 -123
View File
@@ -34,7 +34,11 @@ websocket.on('reconnect', (timeout) => {
var startBet = function(){
websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id});
};
var isEndingBet = false;
var endBet = function (){
if(isEndingBet) return;
isEndingBet = true;
setTimeout(function(){ isEndingBet = false; }, 2000);
websocket.emit('endBet',{table_id : table_id, number_tab_id : number_tab_id});
};
var startRob = function(){
@@ -79,7 +83,11 @@ var resetBoot = function(){
layer.close(index);
});
};
var isOpening = false;
var opening = function(){
if(isOpening) return;
isOpening = true;
setTimeout(function(){ isOpening = false; }, 3000);
$('.control-box .btn-box2 span').removeClass('on');
if(game_id == 1){
var opening = $('#opening').val();
@@ -111,7 +119,10 @@ var retreated = function(){
if(game_id == 1){
var opening = result_arr[0];
var pair = result_arr[1];
websocket.emit('resetBaccarat',{table_id : table_id, number_tab_id : number_tab_id,opening : opening,pair : pair,luck_six:0});
var luck_six = parseInt(result_arr[2]) || 0;
var dragon_seven = parseInt(result_arr[3]) || 0;
var panda_eight = parseInt(result_arr[4]) || 0;
websocket.emit('resetBaccarat',{table_id : table_id, number_tab_id : number_tab_id,opening : opening,pair : pair,luck_six:luck_six,dragon_seven:dragon_seven,panda_eight:panda_eight});
}else if(game_id == 2){
var opening = result_arr[0];
@@ -248,9 +259,21 @@ websocket.on('resetBoot',function(data){
layer.msg(lang[data.msg]);
}
});
var _cdTimer = null;
var _cdVal = 0;
websocket.on('startBetCountDown',function(data){
if(data.status == true && data.table_id == table_id){
_cdVal = data.count_down;
countDown(data.count_down);
if(_cdTimer) clearTimeout(_cdTimer);
if(_cdVal > 0){
_cdTimer = setTimeout(function _tick(){
_cdVal--;
if(_cdVal >= 0) countDown(_cdVal);
if(_cdVal > 0) _cdTimer = setTimeout(_tick, 1000);
else _cdTimer = null;
}, 2000);
}
}
});
websocket.on('endBet',function(data){
@@ -309,7 +332,11 @@ websocket.on('endBet',function(data){
}else{
if (data.table_id != undefined && data.table_id == table_id) {
layer.msg(lang[data.msg]);
if(data.msg == 'end_bet_error' && data.bet_status != undefined){
$('#number_tab_status').val(data.bet_status);
} else {
layer.msg(lang[data.msg]);
}
}
}
});
@@ -378,7 +405,7 @@ $(function(){
if(!cookieValue){
$.cookie("enter_time", 1, { expires: 1/86400*3 });
}else{
layer.msg('Please hold on');
layer.msg('请稍等');
return false
}
@@ -401,6 +428,8 @@ $(function(){
}else{
layer.msg("请稍等!");
}
}else if (numberTabStatus == 1) {
endBet();
}else if (numberTabStatus == 2) {
opening();
}
@@ -441,7 +470,8 @@ $(function(){
}
// 停止倒计时
if(e.keyCode == 96){
endBet();
var _s = $("#number_tab_status").val();
if(_s == 1) endBet();
}
var betStatus = $("#number_tab_status").val();
if(betStatus == 2){
@@ -484,8 +514,11 @@ $(function(){
$('#dragon_seven').val('0');
$('#panda_eight').val('0');
$('#dt_pair').val('0');
$('#openingElement').show();
showPng(3,0,0);
if(game_id == 1){
showPng(3,0,0);
}else{
showPngDt(3,0);
}
}
// Numpad 6(102)=幸运6(庄赢+标记,切换:2张牌→3张牌→取消)
if(e.keyCode == 102){
@@ -564,7 +597,7 @@ $(function(){
}
})
$(window).resize(function(){
requestData(ludan);
if(ludan) requestData(ludan);
})
audio.addEventListener("ended", nextAudio);
getTime();
@@ -618,123 +651,30 @@ function loginout(){
});
};
function showPng(opening, pair,isVoice){
if(opening == 1 && pair == 0) {
$('#openingPng').attr('src','/static/result_img/3in1/banker.png');
if(isVoice){
mp3List = ['banker_win.mp3'];
}
}
if(opening == 1 && pair == 1) {
$('#openingPng').attr('src','/static/result_img/3in1/banker_bpair.png');
if(isVoice){
mp3List = ['banker_win.mp3','banker_pair.mp3'];
}
}
if(opening == 1 && pair == 2) {
$('#openingPng').attr('src','/static/result_img/3in1/banker_ppair.png');
if(isVoice){
mp3List = ['banker_win.mp3','player_pair.mp3'];
}
}
if(opening == 1 && pair == 3) {
$('#openingPng').attr('src','/static/result_img/3in1/banker_bpair_ppair.png');
if(isVoice){
mp3List = ['banker_win.mp3','banker_pair.mp3','player_pair.mp3'];
}
}
if(opening == 2 && pair == 0) {
$('#openingPng').attr('src','/static/result_img/3in1/player.png');
if(isVoice){
mp3List = ['player_win.mp3'];
}
}
if(opening == 2 && pair == 1) {
$('#openingPng').attr('src','/static/result_img/3in1/player_bpair.png');
if(isVoice){
mp3List = ['player_win.mp3','banker_pair.mp3'];
}
}
if(opening == 2 && pair == 2) {
$('#openingPng').attr('src','/static/result_img/3in1/player_ppair.png');
if(isVoice){
mp3List = ['player_win.mp3','player_pair.mp3'];
}
}
if(opening == 2 && pair == 3) {
$('#openingPng').attr('src','/static/result_img/3in1/player_bpair_ppair.png');
if(isVoice){
mp3List = ['player_win.mp3','banker_pair.mp3','player_pair.mp3'];
}
}
if(opening == 3 && pair == 0) {
$('#openingPng').attr('src','/static/result_img/3in1/tie.png');
if(isVoice){
mp3List = ['tie.mp3'];
}
}
if(opening == 3 && pair == 1) {
$('#openingPng').attr('src','/static/result_img/3in1/tie_bpair.png');
if(isVoice){
mp3List = ['tie.mp3','banker_pair.mp3'];
}
}
if(opening == 3 && pair == 2) {
$('#openingPng').attr('src','/static/result_img/3in1/tie_ppair.png');
if(isVoice){
mp3List = ['tie.mp3','player_pair.mp3'];
}
}
if(opening == 3 && pair == 3) {
$('#openingPng').attr('src','/static/result_img/3in1/tie_bpair_ppair.png');
if(isVoice){
mp3List = ['tie.mp3','banker_pair.mp3','player_pair.mp3'];
}
}
if(isVoice){
audioMp3(mp3List).Play();
}
var imgSrc = $('#openingPng').attr('src');
if(imgSrc){
$("#resultAreaTimer").hide();
$("#resultAreaImg").html('<img src="'+imgSrc+'"/>');
}
var winText = '', winColor = '', pairHtml = '';
var bpLabel = (lang.banker_pair || lang.banker+'对');
var ppLabel = (lang.player_pair || lang.player+'对');
if(opening == 1){ winText = lang.banker+'赢'; winColor = '#b20a00'; mp3List = ['banker_win.mp3']; }
if(opening == 2){ winText = lang.player+'赢'; winColor = '#0543bc'; mp3List = ['player_win.mp3']; }
if(opening == 3){ winText = lang.tie; winColor = '#0A5101'; mp3List = ['tie.mp3']; }
if(pair == 1 || pair == 3) { pairHtml += '<span style="color:#b20a00">' + bpLabel + '</span> '; if(isVoice) mp3List.push('banker_pair.mp3'); }
if(pair == 2 || pair == 3) { pairHtml += '<span style="color:#0543bc">' + ppLabel + '</span>'; if(isVoice) mp3List.push('player_pair.mp3'); }
if(isVoice){ audioMp3(mp3List).Play(); }
var html = '<div style="text-align:center"><div style="font-size:3vw;font-weight:bold;color:'+winColor+'">'+winText+'</div>';
if(pairHtml) html += '<div style="font-size:2vw;margin-top:4px">'+pairHtml+'</div>';
html += '</div>';
$("#resultAreaTimer").hide();
$("#resultAreaImg").html(html);
}
function showPngDt (opening,isVoice){
if(opening == 1) {
$('#openingPng').attr('src','/static/result_img/3in1/drogon.png');
if(isVoice){
mp3List = ['dragon_win.mp3'];
}
}
if(opening == 2) {
$('#openingPng').attr('src','/static/result_img/3in1/tiger.png');
if(isVoice){
mp3List = ['tiger_win.mp3'];
}
}
if(opening == 3) {
$('#openingPng').attr('src','/static/handle/result_img/3in1/tie.png');
if(isVoice){
mp3List = ['tie.mp3'];
}
}
if(isVoice){
audioMp3(mp3List).Play();
}
var winText = '', winColor = '';
if(opening == 1){ winText = (lang.dragon||'龙')+'赢'; winColor = '#b20a00'; mp3List = ['dragon_win.mp3']; }
if(opening == 2){ winText = (lang.tiger||'虎')+'赢'; winColor = '#0543bc'; mp3List = ['tiger_win.mp3']; }
if(opening == 3){ winText = lang.tie||'和'; winColor = '#0A5101'; mp3List = ['tie.mp3']; }
if(isVoice){ audioMp3(mp3List).Play(); }
$("#resultAreaTimer").hide();
$("#resultAreaImg").html('<div style="text-align:center;font-size:3vw;font-weight:bold;color:'+winColor+'">'+winText+'</div>');
}
function gameResult(data){
@@ -1451,8 +1391,8 @@ function SoloPath(ctb,unit,x,y,type,corners,luck_six,dragon_seven,panda_eight){
ctb.lineWidth = 2;
}else if(game_id==1 && dragon_seven > 0){
var color='#b8860b', fonts="7";
ctb.strokeStyle = "#c9980a";
ctb.lineWidth = 2;
ctb.strokeStyle = "#ff2202";
ctb.lineWidth = 4;
}else if(game_id==1 && panda_eight > 0){
var color='#34495e', fonts="8";
ctb.strokeStyle = "#506878";
+33 -6
View File
@@ -137,7 +137,11 @@ var startBet = function(){
sbSocket.emit("stop",{"tableCode":casinoTableId, "type":"SYS"});
websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id});
};
var isEndingBet = false;
var endBet = function (){
if(isEndingBet) return;
isEndingBet = true;
setTimeout(function(){ isEndingBet = false; }, 2000);
websocket.emit('endBet',{table_id : table_id, number_tab_id : number_tab_id});
};
var startRob = function(){
@@ -193,7 +197,11 @@ var resetBoot = function(){
layer.close(index);
});
};
var isOpening = false;
var opening = function(){
if(isOpening) return;
isOpening = true;
setTimeout(function(){ isOpening = false; }, 3000);
$('.control-box .btn-box2 span').removeClass('on');
if(game_id == 1){
websocket.emit('openingBaccarat',{table_id : table_id, number_tab_id : number_tab_id});
@@ -496,9 +504,21 @@ websocket.on('resetBoot',function(data){
}
}
});
var _cdTimer = null;
var _cdVal = 0;
websocket.on('startBetCountDown',function(data){
if(data.status == true && data.table_id == table_id){
_cdVal = data.count_down;
countDown(data.count_down);
if(_cdTimer) clearTimeout(_cdTimer);
if(_cdVal > 0){
_cdTimer = setTimeout(function _tick(){
_cdVal--;
if(_cdVal >= 0) countDown(_cdVal);
if(_cdVal > 0) _cdTimer = setTimeout(_tick, 1000);
else _cdTimer = null;
}, 2000);
}
}
});
websocket.on('endBet',function(data){
@@ -538,7 +558,11 @@ websocket.on('endBet',function(data){
}else{
if (data.table_id != undefined && data.table_id == table_id) {
layer.msg(lang[data.msg]);
if(data.msg == 'end_bet_error' && data.bet_status != undefined){
$('#number_tab_status').val(data.bet_status);
} else {
layer.msg(lang[data.msg]);
}
}
}
});
@@ -805,7 +829,7 @@ $(function(){
if(!cookieValue){
$.cookie("enter_time", 1, { expires: 1/86400*3 });
}else{
layer.msg('Please hold on');
layer.msg('请稍等');
return false
}
@@ -828,6 +852,8 @@ $(function(){
}else{
layer.msg("请稍等!");
}
}else if (numberTabStatus == 1) {
endBet();
}else if (numberTabStatus == 2) {
opening();
}
@@ -867,11 +893,12 @@ $(function(){
var number_tab_status=$("#number_tab_status").val();
if((number_rob_status==1&&number_tab_status==0)||(number_rob_status==2&&number_tab_status==0)){
endRob();
}else{
}else if(number_tab_status == 1){
endBet();
}
}else{
endBet();
var _s = $("#number_tab_status").val();
if(_s == 1) endBet();
}
}
if(game_id == 6){
@@ -2128,8 +2155,8 @@ function SoloPath(ctb,unit,x,y,type,corners,luck_six,dragon_seven,panda_eight){
} else if(game_id==1 && dragon_seven > 0){
var color='#b8860b';
var fonts="7";
ctb.strokeStyle = "#c9980a";
ctb.lineWidth = 2;
ctb.{strokeStyle = "#ff2202";}
ctb.lineWidth = 3;
} else if(game_id==1 && panda_eight > 0){
var color='#34495e';
var fonts="8";
@@ -137,7 +137,11 @@ var startBet = function(){
sbSocket.emit("stop",{"tableCode":casinoTableId, "type":"SYS"});
websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id});
};
var isEndingBet = false;
var endBet = function (){
if(isEndingBet) return;
isEndingBet = true;
setTimeout(function(){ isEndingBet = false; }, 2000);
websocket.emit('endBet',{table_id : table_id, number_tab_id : number_tab_id});
};
var startRob = function(){
@@ -194,7 +198,11 @@ var resetBoot = function(){
layer.close(index);
});
};
var isOpening = false;
var opening = function(){
if(isOpening) return;
isOpening = true;
setTimeout(function(){ isOpening = false; }, 3000);
$('.control-box .btn-box2 span').removeClass('on');
if(game_id == 1){
websocket.emit('openingBaccarat',{table_id : table_id, number_tab_id : number_tab_id});
@@ -512,9 +520,21 @@ websocket.on('resetBoot',function(data){
}
}
});
var _cdTimer = null;
var _cdVal = 0;
websocket.on('startBetCountDown',function(data){
if(data.status == true && data.table_id == table_id){
_cdVal = data.count_down;
countDown(data.count_down);
if(_cdTimer) clearTimeout(_cdTimer);
if(_cdVal > 0){
_cdTimer = setTimeout(function _tick(){
_cdVal--;
if(_cdVal >= 0) countDown(_cdVal);
if(_cdVal > 0) _cdTimer = setTimeout(_tick, 1000);
else _cdTimer = null;
}, 2000);
}
}
});
websocket.on('endBet',function(data){
@@ -555,7 +575,11 @@ websocket.on('endBet',function(data){
}else{
if (data.table_id != undefined && data.table_id == table_id) {
layer.msg(lang[data.msg]);
if(data.msg == 'end_bet_error' && data.bet_status != undefined){
$('#number_tab_status').val(data.bet_status);
} else {
layer.msg(lang[data.msg]);
}
}
}
});
@@ -932,7 +956,7 @@ $(function(){
if(!cookieValue){
$.cookie("enter_time", 1, { expires: 1/86400*3 });
}else{
layer.msg('Please hold on');
layer.msg('请稍等');
return false
}
@@ -955,6 +979,8 @@ $(function(){
}else{
layer.msg("请稍等!");
}
}else if (numberTabStatus == 1) {
endBet();
}else if (numberTabStatus == 2) {
opening();
}
@@ -994,11 +1020,12 @@ $(function(){
var number_tab_status=$("#number_tab_status").val();
if((number_rob_status==1&&number_tab_status==0)||(number_rob_status==2&&number_tab_status==0)){
endRob();
}else{
}else if(number_tab_status == 1){
endBet();
}
}else{
endBet();
var _s = $("#number_tab_status").val();
if(_s == 1) endBet();
}
}
if(game_id == 6){
+31 -4
View File
@@ -28,7 +28,11 @@ websocket.on('reconnect', (timeout) => {
var startBet = function(){
websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id});
};
var isEndingBet = false;
var endBet = function (){
if(isEndingBet) return;
isEndingBet = true;
setTimeout(function(){ isEndingBet = false; }, 2000);
websocket.emit('endBet',{table_id : table_id, number_tab_id : number_tab_id});
};
var resetNumberTab = function(){
@@ -71,7 +75,11 @@ var resetBoot = function(){
layer.close(index);
});
};
var isOpening = false;
var opening = function(){
if(isOpening) return;
isOpening = true;
setTimeout(function(){ isOpening = false; }, 3000);
$('.control-box .btn-box2 span').removeClass('on');
let result = $('#dice_result').val();
websocket.emit('openingDice',{table_id : table_id, number_tab_id : number_tab_id, result : result});
@@ -189,9 +197,21 @@ websocket.on('resetBoot',function(data){
}
}
});
var _cdTimer = null;
var _cdVal = 0;
websocket.on('startBetCountDown',function(data){
if(data.status == true && data.table_id == table_id){
_cdVal = data.count_down;
countDown(data.count_down);
if(_cdTimer) clearTimeout(_cdTimer);
if(_cdVal > 0){
_cdTimer = setTimeout(function _tick(){
_cdVal--;
if(_cdVal >= 0) countDown(_cdVal);
if(_cdVal > 0) _cdTimer = setTimeout(_tick, 1000);
else _cdTimer = null;
}, 2000);
}
}
});
websocket.on('endBet',function(data){
@@ -211,7 +231,11 @@ websocket.on('endBet',function(data){
setBetStatus(data.round.number_tab_status);
}else{
if (data.table_id != undefined && data.table_id == table_id) {
layer.msg(lang[data.msg]);
if(data.msg == 'end_bet_error' && data.bet_status != undefined){
$('#number_tab_status').val(data.bet_status);
} else {
layer.msg(lang[data.msg]);
}
}
}
});
@@ -241,7 +265,7 @@ $(function(){
if(!cookieValue){
$.cookie("enter_time", 1, { expires: 1/86400*3 });
}else{
layer.msg('Please hold on');
layer.msg('请稍等');
return false
}
@@ -264,6 +288,8 @@ $(function(){
}else{
layer.msg("请稍等!");
}
}else if (numberTabStatus == 1) {
endBet();
}else if (numberTabStatus == 2) {
opening();
}
@@ -303,11 +329,12 @@ $(function(){
var number_tab_status=$("#number_tab_status").val();
if((number_rob_status==1&&number_tab_status==0)||(number_rob_status==2&&number_tab_status==0)){
endRob();
}else{
}else if(number_tab_status == 1){
endBet();
}
}else{
endBet();
var _s = $("#number_tab_status").val();
if(_s == 1) endBet();
}
}
// 骰宝结果选择
+31 -4
View File
@@ -123,7 +123,11 @@ var startBet = function(){
sbSocket.emit("stop",{"tableCode":casinoTableId, "type":"SYS"});
websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id});
};
var isEndingBet = false;
var endBet = function (){
if(isEndingBet) return;
isEndingBet = true;
setTimeout(function(){ isEndingBet = false; }, 2000);
websocket.emit('endBet',{table_id : table_id, number_tab_id : number_tab_id});
};
var startRob = function(){
@@ -179,7 +183,11 @@ var resetBoot = function(){
layer.close(index);
});
};
var isOpening = false;
var opening = function(){
if(isOpening) return;
isOpening = true;
setTimeout(function(){ isOpening = false; }, 3000);
$('.control-box .btn-box2 span').removeClass('on');
if(game_id == 1){
websocket.emit('openingBaccarat',{table_id : table_id, number_tab_id : number_tab_id});
@@ -487,9 +495,21 @@ websocket.on('resetBoot',function(data){
}
}
});
var _cdTimer = null;
var _cdVal = 0;
websocket.on('startBetCountDown',function(data){
if(data.status == true && data.table_id == table_id){
_cdVal = data.count_down;
countDown(data.count_down);
if(_cdTimer) clearTimeout(_cdTimer);
if(_cdVal > 0){
_cdTimer = setTimeout(function _tick(){
_cdVal--;
if(_cdVal >= 0) countDown(_cdVal);
if(_cdVal > 0) _cdTimer = setTimeout(_tick, 1000);
else _cdTimer = null;
}, 2000);
}
}
});
websocket.on('endBet',function(data){
@@ -527,7 +547,11 @@ websocket.on('endBet',function(data){
}else{
if (data.table_id != undefined && data.table_id == table_id) {
layer.msg(lang[data.msg]);
if(data.msg == 'end_bet_error' && data.bet_status != undefined){
$('#number_tab_status').val(data.bet_status);
} else {
layer.msg(lang[data.msg]);
}
}
}
});
@@ -774,7 +798,7 @@ $(function(){
if(!cookieValue){
$.cookie("enter_time", 1, { expires: 1/86400*3 });
}else{
layer.msg('Please hold on');
layer.msg('请稍等');
return false
}
@@ -797,6 +821,8 @@ $(function(){
}else{
layer.msg("请稍等!");
}
}else if (numberTabStatus == 1) {
endBet();
}else if (numberTabStatus == 2) {
opening();
}
@@ -836,11 +862,12 @@ $(function(){
var number_tab_status=$("#number_tab_status").val();
if((number_rob_status==1&&number_tab_status==0)||(number_rob_status==2&&number_tab_status==0)){
endRob();
}else{
}else if(number_tab_status == 1){
endBet();
}
}else{
endBet();
var _s = $("#number_tab_status").val();
if(_s == 1) endBet();
}
}
if(game_id == 6){
+31 -4
View File
@@ -184,7 +184,11 @@ var startBet = function(){
sbSocket.emit("stop",{"tableCode":casinoTableId, "type":"SYS"});
websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id});
};
var isEndingBet = false;
var endBet = function (){
if(isEndingBet) return;
isEndingBet = true;
setTimeout(function(){ isEndingBet = false; }, 2000);
websocket.emit('endBet',{table_id : table_id, number_tab_id : number_tab_id});
};
var startRob = function(){
@@ -240,7 +244,11 @@ var resetBoot = function(){
layer.close(index);
});
};
var isOpening = false;
var opening = function(){
if(isOpening) return;
isOpening = true;
setTimeout(function(){ isOpening = false; }, 3000);
$('.control-box .btn-box2 span').removeClass('on');
if(game_id == 1){
websocket.emit('openingBaccarat',{table_id : table_id, number_tab_id : number_tab_id});
@@ -557,9 +565,21 @@ websocket.on('resetBoot',function(data){
}
}
});
var _cdTimer = null;
var _cdVal = 0;
websocket.on('startBetCountDown',function(data){
if(data.status == true && data.table_id == table_id){
_cdVal = data.count_down;
countDown(data.count_down);
if(_cdTimer) clearTimeout(_cdTimer);
if(_cdVal > 0){
_cdTimer = setTimeout(function _tick(){
_cdVal--;
if(_cdVal >= 0) countDown(_cdVal);
if(_cdVal > 0) _cdTimer = setTimeout(_tick, 1000);
else _cdTimer = null;
}, 2000);
}
}
});
websocket.on('endBet',function(data){
@@ -602,7 +622,11 @@ websocket.on('endBet',function(data){
}else{
if (data.table_id != undefined && data.table_id == table_id) {
layer.msg(lang[data.msg]);
if(data.msg == 'end_bet_error' && data.bet_status != undefined){
$('#number_tab_status').val(data.bet_status);
} else {
layer.msg(lang[data.msg]);
}
}
}
});
@@ -908,7 +932,7 @@ $(function(){
if(!cookieValue){
$.cookie("enter_time", 1, { expires: 1/86400*3 });
}else{
layer.msg('Please hold on');
layer.msg('请稍等');
return false
}
@@ -931,6 +955,8 @@ $(function(){
}else{
layer.msg("请稍等!");
}
}else if (numberTabStatus == 1) {
endBet();
}else if (numberTabStatus == 2) {
opening();
}
@@ -970,11 +996,12 @@ $(function(){
var number_tab_status=$("#number_tab_status").val();
if((number_rob_status==1&&number_tab_status==0)||(number_rob_status==2&&number_tab_status==0)){
endRob();
}else{
}else if(number_tab_status == 1){
endBet();
}
}else{
endBet();
var _s = $("#number_tab_status").val();
if(_s == 1) endBet();
}
}
if(game_id == 6){
+31 -4
View File
@@ -28,7 +28,11 @@ websocket.on('reconnect', (timeout) => {
var startBet = function(){
websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id});
};
var isEndingBet = false;
var endBet = function (){
if(isEndingBet) return;
isEndingBet = true;
setTimeout(function(){ isEndingBet = false; }, 2000);
websocket.emit('endBet',{table_id : table_id, number_tab_id : number_tab_id});
};
var resetNumberTab = function(){
@@ -69,7 +73,11 @@ var resetBoot = function(){
layer.close(index);
});
};
var isOpening = false;
var opening = function(){
if(isOpening) return;
isOpening = true;
setTimeout(function(){ isOpening = false; }, 3000);
let result = $('#roulette_result').val();
websocket.emit('openingRoulette',{table_id : table_id, number_tab_id : number_tab_id, result : result});
};
@@ -169,9 +177,21 @@ websocket.on('resetBoot',function(data){
}
}
});
var _cdTimer = null;
var _cdVal = 0;
websocket.on('startBetCountDown',function(data){
if(data.status == true && data.table_id == table_id){
_cdVal = data.count_down;
countDown(data.count_down);
if(_cdTimer) clearTimeout(_cdTimer);
if(_cdVal > 0){
_cdTimer = setTimeout(function _tick(){
_cdVal--;
if(_cdVal >= 0) countDown(_cdVal);
if(_cdVal > 0) _cdTimer = setTimeout(_tick, 1000);
else _cdTimer = null;
}, 2000);
}
}
});
websocket.on('endBet',function(data){
@@ -185,7 +205,11 @@ websocket.on('endBet',function(data){
setBetStatus(data.round.number_tab_status);
}else{
if (data.table_id != undefined && data.table_id == table_id) {
layer.msg(lang[data.msg]);
if(data.msg == 'end_bet_error' && data.bet_status != undefined){
$('#number_tab_status').val(data.bet_status);
} else {
layer.msg(lang[data.msg]);
}
}
}
});
@@ -216,7 +240,7 @@ $(function(){
if(!cookieValue){
$.cookie("enter_time", 1, { expires: 1/86400*3 });
}else{
layer.msg('Please hold on');
layer.msg('请稍等');
return false
}
@@ -239,6 +263,8 @@ $(function(){
}else{
layer.msg("请稍等!");
}
}else if (numberTabStatus == 1) {
endBet();
}else if (numberTabStatus == 2) {
var result = $('#roulette_result').val();
if(result.length == 0){
@@ -282,11 +308,12 @@ $(function(){
var number_tab_status=$("#number_tab_status").val();
if((number_rob_status==1&&number_tab_status==0)||(number_rob_status==2&&number_tab_status==0)){
endRob();
}else{
}else if(number_tab_status == 1){
endBet();
}
}else{
endBet();
var _s = $("#number_tab_status").val();
if(_s == 1) endBet();
}
}
// 骰宝结果选择
-1
View File
@@ -1 +0,0 @@
1474396
-339
View File
@@ -1,339 +0,0 @@
Starting swoole http server...
Swoole http server started: <http://0.0.0.0:8082>
You can exit with `CTRL-C`
1:退出
<pre>getState:ws:3</pre><pre>Array
(
[mode] => user
[user_id] => 34
[table_id] => 0
[scan_appid] => 0
[api_appid] => 0
[username] => 974824731
[table_name] =>
)
</pre>3:退出
5:退出
4:退出
6:退出
7:退出
8:退出
9:退出
10:退出
11:退出
12:退出
13:退出
14:退出
15:退出
16:退出
17:退出
18:退出
19:退出
20:退出
21:退出
22:退出
23:退出
24:退出
25:退出
26:退出
27:退出
28:退出
30:退出
29:退出
31:退出
32:退出
33:退出
34:退出
35:退出
36:退出
37:退出
38:退出
39:退出
40:退出
41:退出
42:退出
43:退出
44:退出
45:退出
46:退出
47:退出
48:退出
49:退出
50:退出
51:退出
52:退出
53:退出
54:退出
55:退出
56:退出
57:退出
58:退出
59:退出
60:退出
61:退出
62:退出
63:退出
64:退出
65:退出
66:退出
68:退出
67:退出
69:退出
70:退出
71:退出
72:退出
73:退出
74:退出
75:退出
76:退出
77:退出
78:退出
79:退出
80:退出
81:退出
82:退出
83:退出
84:退出
85:退出
86:退出
87:退出
88:退出
89:退出
90:退出
91:退出
92:退出
94:退出
93:退出
95:退出
96:退出
97:退出
98:退出
99:退出
100:退出
101:退出
102:退出
103:退出
104:退出
105:退出
106:退出
107:退出
108:退出
109:退出
110:退出
111:退出
112:退出
113:退出
114:退出
115:退出
2:退出
118:退出
117:退出
116:退出
119:退出
120:退出
121:退出
122:退出
123:退出
124:退出
125:退出
126:退出
127:退出
128:退出
129:退出
130:退出
131:退出
132:退出
133:退出
134:退出
135:退出
136:退出
137:退出
138:退出
139:退出
140:退出
141:退出
142:退出
144:退出
143:退出
145:退出
146:退出
147:退出
148:退出
149:退出
150:退出
151:退出
152:退出
153:退出
154:退出
155:退出
156:退出
157:退出
158:退出
159:退出
160:退出
161:退出
162:退出
163:退出
164:退出
165:退出
166:退出
167:退出
168:退出
169:退出
170:退出
171:退出
172:退出
173:退出
174:退出
175:退出
176:退出
177:退出
178:退出
179:退出
180:退出
181:退出
182:退出
183:退出
184:退出
185:退出
186:退出
187:退出
188:退出
189:退出
190:退出
191:退出
192:退出
193:退出
194:退出
195:退出
196:退出
197:退出
198:退出
199:退出
200:退出
201:退出
202:退出
203:退出
204:退出
205:退出
206:退出
207:退出
208:退出
210:退出
209:退出
211:退出
212:退出
213:退出
214:退出
215:退出
216:退出
217:退出
218:退出
219:退出
220:退出
221:退出
222:退出
223:退出
224:退出
225:退出
226:退出
227:退出
228:退出
230:退出
229:退出
231:退出
232:退出
233:退出
234:退出
235:退出
236:退出
237:退出
238:退出
239:退出
240:退出
241:退出
242:退出
243:退出
245:退出
244:退出
246:退出
247:退出
248:退出
249:退出
250:退出
251:退出
252:退出
253:退出
254:退出
255:退出
261:退出
263:退出
266:退出
270:退出
271:退出
272:退出
273:退出
274:退出
275:退出
276:退出
277:退出
278:退出
279:退出
280:退出
281:退出
282:退出
283:退出
287:退出
288:退出
289:退出
290:退出
291:退出
292:退出
293:退出
294:退出
295:退出
296:退出
297:退出
298:退出
300:退出
301:退出
302:退出
303:退出
304:退出
305:退出
306:退出
307:退出
308:退出
309:退出
310:退出
311:退出
312:退出
313:退出
314:退出
315:退出
330:退出
331:退出
332:退出
334:退出
337:退出
338:退出
339:退出
340:退出
342:退出
341:退出
346:退出
347:退出
348:退出
349:退出
350:退出
351:退出
352:退出
353:退出
354:退出
355:退出
356:退出
357:退出
358:退出
359:退出
360:退出
361:退出
-1
View File
@@ -1 +0,0 @@
1474396
-7
View File
@@ -1,7 +0,0 @@
<?php
// autoload.php @generated by Composer
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit9947e2ce7d1a6501413c1b0d7d3973cf::getLoader();
-63
View File
@@ -1,63 +0,0 @@
#!/usr/bin/env php
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
/**
* Starts a dump server to collect and output dumps on a single place with multiple formats support.
*
* @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
*/
use Psr\Log\LoggerInterface;
use Symfony\Component\Console\Application;
use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Logger\ConsoleLogger;
use Symfony\Component\Console\Output\ConsoleOutput;
use Symfony\Component\VarDumper\Command\ServerDumpCommand;
use Symfony\Component\VarDumper\Server\DumpServer;
function includeIfExists(string $file): bool
{
return file_exists($file) && include $file;
}
if (
!includeIfExists(__DIR__ . '/../../../../autoload.php') &&
!includeIfExists(__DIR__ . '/../../vendor/autoload.php') &&
!includeIfExists(__DIR__ . '/../../../../../../vendor/autoload.php')
) {
fwrite(STDERR, 'Install dependencies using Composer.'.PHP_EOL);
exit(1);
}
if (!class_exists(Application::class)) {
fwrite(STDERR, 'You need the "symfony/console" component in order to run the VarDumper server.'.PHP_EOL);
exit(1);
}
$input = new ArgvInput();
$output = new ConsoleOutput();
$defaultHost = '127.0.0.1:9912';
$host = $input->getParameterOption(['--host'], $_SERVER['VAR_DUMPER_SERVER'] ?? $defaultHost, true);
$logger = interface_exists(LoggerInterface::class) ? new ConsoleLogger($output->getErrorOutput()) : null;
$app = new Application();
$app->getDefinition()->addOption(
new InputOption('--host', null, InputOption::VALUE_REQUIRED, 'The address the server should listen to', $defaultHost)
);
$app->add($command = new ServerDumpCommand(new DumpServer($host, $logger)))
->getApplication()
->setDefaultCommand($command->getName(), true)
->run($input, $output)
;
-445
View File
@@ -1,445 +0,0 @@
<?php
/*
* This file is part of Composer.
*
* (c) Nils Adermann <naderman@naderman.de>
* Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Composer\Autoload;
/**
* ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
*
* $loader = new \Composer\Autoload\ClassLoader();
*
* // register classes with namespaces
* $loader->add('Symfony\Component', __DIR__.'/component');
* $loader->add('Symfony', __DIR__.'/framework');
*
* // activate the autoloader
* $loader->register();
*
* // to enable searching the include path (eg. for PEAR packages)
* $loader->setUseIncludePath(true);
*
* In this example, if you try to use a class in the Symfony\Component
* namespace or one of its children (Symfony\Component\Console for instance),
* the autoloader will first look for the class under the component/
* directory, and it will then fallback to the framework/ directory if not
* found before giving up.
*
* This class is loosely based on the Symfony UniversalClassLoader.
*
* @author Fabien Potencier <fabien@symfony.com>
* @author Jordi Boggiano <j.boggiano@seld.be>
* @see https://www.php-fig.org/psr/psr-0/
* @see https://www.php-fig.org/psr/psr-4/
*/
class ClassLoader
{
// PSR-4
private $prefixLengthsPsr4 = array();
private $prefixDirsPsr4 = array();
private $fallbackDirsPsr4 = array();
// PSR-0
private $prefixesPsr0 = array();
private $fallbackDirsPsr0 = array();
private $useIncludePath = false;
private $classMap = array();
private $classMapAuthoritative = false;
private $missingClasses = array();
private $apcuPrefix;
public function getPrefixes()
{
if (!empty($this->prefixesPsr0)) {
return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
}
return array();
}
public function getPrefixesPsr4()
{
return $this->prefixDirsPsr4;
}
public function getFallbackDirs()
{
return $this->fallbackDirsPsr0;
}
public function getFallbackDirsPsr4()
{
return $this->fallbackDirsPsr4;
}
public function getClassMap()
{
return $this->classMap;
}
/**
* @param array $classMap Class to filename map
*/
public function addClassMap(array $classMap)
{
if ($this->classMap) {
$this->classMap = array_merge($this->classMap, $classMap);
} else {
$this->classMap = $classMap;
}
}
/**
* Registers a set of PSR-0 directories for a given prefix, either
* appending or prepending to the ones previously set for this prefix.
*
* @param string $prefix The prefix
* @param array|string $paths The PSR-0 root directories
* @param bool $prepend Whether to prepend the directories
*/
public function add($prefix, $paths, $prepend = false)
{
if (!$prefix) {
if ($prepend) {
$this->fallbackDirsPsr0 = array_merge(
(array) $paths,
$this->fallbackDirsPsr0
);
} else {
$this->fallbackDirsPsr0 = array_merge(
$this->fallbackDirsPsr0,
(array) $paths
);
}
return;
}
$first = $prefix[0];
if (!isset($this->prefixesPsr0[$first][$prefix])) {
$this->prefixesPsr0[$first][$prefix] = (array) $paths;
return;
}
if ($prepend) {
$this->prefixesPsr0[$first][$prefix] = array_merge(
(array) $paths,
$this->prefixesPsr0[$first][$prefix]
);
} else {
$this->prefixesPsr0[$first][$prefix] = array_merge(
$this->prefixesPsr0[$first][$prefix],
(array) $paths
);
}
}
/**
* Registers a set of PSR-4 directories for a given namespace, either
* appending or prepending to the ones previously set for this namespace.
*
* @param string $prefix The prefix/namespace, with trailing '\\'
* @param array|string $paths The PSR-4 base directories
* @param bool $prepend Whether to prepend the directories
*
* @throws \InvalidArgumentException
*/
public function addPsr4($prefix, $paths, $prepend = false)
{
if (!$prefix) {
// Register directories for the root namespace.
if ($prepend) {
$this->fallbackDirsPsr4 = array_merge(
(array) $paths,
$this->fallbackDirsPsr4
);
} else {
$this->fallbackDirsPsr4 = array_merge(
$this->fallbackDirsPsr4,
(array) $paths
);
}
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
// Register directories for a new namespace.
$length = strlen($prefix);
if ('\\' !== $prefix[$length - 1]) {
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
}
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
$this->prefixDirsPsr4[$prefix] = (array) $paths;
} elseif ($prepend) {
// Prepend directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
(array) $paths,
$this->prefixDirsPsr4[$prefix]
);
} else {
// Append directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
$this->prefixDirsPsr4[$prefix],
(array) $paths
);
}
}
/**
* Registers a set of PSR-0 directories for a given prefix,
* replacing any others previously set for this prefix.
*
* @param string $prefix The prefix
* @param array|string $paths The PSR-0 base directories
*/
public function set($prefix, $paths)
{
if (!$prefix) {
$this->fallbackDirsPsr0 = (array) $paths;
} else {
$this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
}
}
/**
* Registers a set of PSR-4 directories for a given namespace,
* replacing any others previously set for this namespace.
*
* @param string $prefix The prefix/namespace, with trailing '\\'
* @param array|string $paths The PSR-4 base directories
*
* @throws \InvalidArgumentException
*/
public function setPsr4($prefix, $paths)
{
if (!$prefix) {
$this->fallbackDirsPsr4 = (array) $paths;
} else {
$length = strlen($prefix);
if ('\\' !== $prefix[$length - 1]) {
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
}
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
$this->prefixDirsPsr4[$prefix] = (array) $paths;
}
}
/**
* Turns on searching the include path for class files.
*
* @param bool $useIncludePath
*/
public function setUseIncludePath($useIncludePath)
{
$this->useIncludePath = $useIncludePath;
}
/**
* Can be used to check if the autoloader uses the include path to check
* for classes.
*
* @return bool
*/
public function getUseIncludePath()
{
return $this->useIncludePath;
}
/**
* Turns off searching the prefix and fallback directories for classes
* that have not been registered with the class map.
*
* @param bool $classMapAuthoritative
*/
public function setClassMapAuthoritative($classMapAuthoritative)
{
$this->classMapAuthoritative = $classMapAuthoritative;
}
/**
* Should class lookup fail if not found in the current class map?
*
* @return bool
*/
public function isClassMapAuthoritative()
{
return $this->classMapAuthoritative;
}
/**
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
*
* @param string|null $apcuPrefix
*/
public function setApcuPrefix($apcuPrefix)
{
$this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
}
/**
* The APCu prefix in use, or null if APCu caching is not enabled.
*
* @return string|null
*/
public function getApcuPrefix()
{
return $this->apcuPrefix;
}
/**
* Registers this instance as an autoloader.
*
* @param bool $prepend Whether to prepend the autoloader or not
*/
public function register($prepend = false)
{
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
}
/**
* Unregisters this instance as an autoloader.
*/
public function unregister()
{
spl_autoload_unregister(array($this, 'loadClass'));
}
/**
* Loads the given class or interface.
*
* @param string $class The name of the class
* @return bool|null True if loaded, null otherwise
*/
public function loadClass($class)
{
if ($file = $this->findFile($class)) {
includeFile($file);
return true;
}
}
/**
* Finds the path to the file where the class is defined.
*
* @param string $class The name of the class
*
* @return string|false The path if found, false otherwise
*/
public function findFile($class)
{
// class map lookup
if (isset($this->classMap[$class])) {
return $this->classMap[$class];
}
if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
return false;
}
if (null !== $this->apcuPrefix) {
$file = apcu_fetch($this->apcuPrefix.$class, $hit);
if ($hit) {
return $file;
}
}
$file = $this->findFileWithExtension($class, '.php');
// Search for Hack files if we are running on HHVM
if (false === $file && defined('HHVM_VERSION')) {
$file = $this->findFileWithExtension($class, '.hh');
}
if (null !== $this->apcuPrefix) {
apcu_add($this->apcuPrefix.$class, $file);
}
if (false === $file) {
// Remember that this class does not exist.
$this->missingClasses[$class] = true;
}
return $file;
}
private function findFileWithExtension($class, $ext)
{
// PSR-4 lookup
$logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
$first = $class[0];
if (isset($this->prefixLengthsPsr4[$first])) {
$subPath = $class;
while (false !== $lastPos = strrpos($subPath, '\\')) {
$subPath = substr($subPath, 0, $lastPos);
$search = $subPath . '\\';
if (isset($this->prefixDirsPsr4[$search])) {
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
foreach ($this->prefixDirsPsr4[$search] as $dir) {
if (file_exists($file = $dir . $pathEnd)) {
return $file;
}
}
}
}
}
// PSR-4 fallback dirs
foreach ($this->fallbackDirsPsr4 as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
return $file;
}
}
// PSR-0 lookup
if (false !== $pos = strrpos($class, '\\')) {
// namespaced class name
$logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
. strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
} else {
// PEAR-like class name
$logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
}
if (isset($this->prefixesPsr0[$first])) {
foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
if (0 === strpos($class, $prefix)) {
foreach ($dirs as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
return $file;
}
}
}
}
}
// PSR-0 fallback dirs
foreach ($this->fallbackDirsPsr0 as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
return $file;
}
}
// PSR-0 include paths.
if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
return $file;
}
return false;
}
}
/**
* Scope isolated include.
*
* Prevents access to $this/self from included files.
*/
function includeFile($file)
{
include $file;
}
-434
View File
@@ -1,434 +0,0 @@
<?php
namespace Composer;
use Composer\Semver\VersionParser;
class InstalledVersions
{
private static $installed = array (
'root' =>
array (
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'aliases' =>
array (
),
'reference' => 'c9f65d5ca918842689a627444aec27e5d6aeffc5',
'name' => 'topthink/think',
),
'versions' =>
array (
'league/flysystem' =>
array (
'pretty_version' => '1.1.3',
'version' => '1.1.3.0',
'aliases' =>
array (
),
'reference' => '9be3b16c877d477357c015cec057548cf9b2a14a',
),
'league/flysystem-cached-adapter' =>
array (
'pretty_version' => '1.1.0',
'version' => '1.1.0.0',
'aliases' =>
array (
),
'reference' => 'd1925efb2207ac4be3ad0c40b8277175f99ffaff',
),
'league/mime-type-detection' =>
array (
'pretty_version' => '1.5.1',
'version' => '1.5.1.0',
'aliases' =>
array (
),
'reference' => '353f66d7555d8a90781f6f5e7091932f9a4250aa',
),
'nette/php-generator' =>
array (
'pretty_version' => 'v3.4.1',
'version' => '3.4.1.0',
'aliases' =>
array (
),
'reference' => '7051954c534cebafd650efe8b145ac75b223cb66',
),
'nette/utils' =>
array (
'pretty_version' => 'v3.1.3',
'version' => '3.1.3.0',
'aliases' =>
array (
),
'reference' => 'c09937fbb24987b2a41c6022ebe84f4f1b8eec0f',
),
'open-smf/connection-pool' =>
array (
'pretty_version' => 'v1.0.15',
'version' => '1.0.15.0',
'aliases' =>
array (
),
'reference' => 'f9289cb5ee61d3e901bc74ab745e5b2162461a1e',
),
'psr/cache' =>
array (
'pretty_version' => '1.0.1',
'version' => '1.0.1.0',
'aliases' =>
array (
),
'reference' => 'd11b50ad223250cf17b86e38383413f5a6764bf8',
),
'psr/container' =>
array (
'pretty_version' => '1.0.0',
'version' => '1.0.0.0',
'aliases' =>
array (
),
'reference' => 'b7ce3b176482dbbc1245ebf52b181af44c2cf55f',
),
'psr/log' =>
array (
'pretty_version' => '1.1.3',
'version' => '1.1.3.0',
'aliases' =>
array (
),
'reference' => '0f73288fd15629204f9d42b7055f72dacbe811fc',
),
'psr/simple-cache' =>
array (
'pretty_version' => '1.0.1',
'version' => '1.0.1.0',
'aliases' =>
array (
),
'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b',
),
'swoole/ide-helper' =>
array (
'pretty_version' => '4.5.6',
'version' => '4.5.6.0',
'aliases' =>
array (
),
'reference' => 'ab23c2c35880144a6060a3f178a68af0d0c6fc93',
),
'symfony/finder' =>
array (
'pretty_version' => 'v4.4.16',
'version' => '4.4.16.0',
'aliases' =>
array (
),
'reference' => '26f63b8d4e92f2eecd90f6791a563ebb001abe31',
),
'symfony/polyfill-mbstring' =>
array (
'pretty_version' => 'v1.20.0',
'version' => '1.20.0.0',
'aliases' =>
array (
),
'reference' => '39d483bdf39be819deabf04ec872eb0b2410b531',
),
'symfony/polyfill-php72' =>
array (
'pretty_version' => 'v1.20.0',
'version' => '1.20.0.0',
'aliases' =>
array (
),
'reference' => 'cede45fcdfabdd6043b3592e83678e42ec69e930',
),
'symfony/polyfill-php80' =>
array (
'pretty_version' => 'v1.20.0',
'version' => '1.20.0.0',
'aliases' =>
array (
),
'reference' => 'e70aa8b064c5b72d3df2abd5ab1e90464ad009de',
),
'symfony/var-dumper' =>
array (
'pretty_version' => 'v4.4.16',
'version' => '4.4.16.0',
'aliases' =>
array (
),
'reference' => '3718e18b68d955348ad860e505991802c09f5f73',
),
'topthink/framework' =>
array (
'pretty_version' => 'v6.0.5',
'version' => '6.0.5.0',
'aliases' =>
array (
),
'reference' => '85625d984f5c96699dc27d384869f206c3aec1cc',
),
'topthink/think' =>
array (
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'aliases' =>
array (
),
'reference' => 'c9f65d5ca918842689a627444aec27e5d6aeffc5',
),
'topthink/think-captcha' =>
array (
'pretty_version' => 'v3.0.3',
'version' => '3.0.3.0',
'aliases' =>
array (
),
'reference' => '1eef3717c1bcf4f5bbe2d1a1c704011d330a8b55',
),
'topthink/think-helper' =>
array (
'pretty_version' => 'v3.1.4',
'version' => '3.1.4.0',
'aliases' =>
array (
),
'reference' => 'c28d37743bda4a0455286ca85b17b5791d626e10',
),
'topthink/think-multi-app' =>
array (
'pretty_version' => 'v1.0.14',
'version' => '1.0.14.0',
'aliases' =>
array (
),
'reference' => 'ccaad7c2d33f42cb1cc2a78d6610aaec02cea4c3',
),
'topthink/think-orm' =>
array (
'pretty_version' => 'v2.0.34',
'version' => '2.0.34.0',
'aliases' =>
array (
),
'reference' => '57f9b98895b0ff4ae7b7b75e51456fd8cb8fb629',
),
'topthink/think-swoole' =>
array (
'pretty_version' => 'v3.0.9',
'version' => '3.0.9.0',
'aliases' =>
array (
),
'reference' => 'c61e95cdc0669f4fe3382e25def9ae25797c0508',
),
'topthink/think-template' =>
array (
'pretty_version' => 'v2.0.7',
'version' => '2.0.7.0',
'aliases' =>
array (
),
'reference' => 'e98bdbb4a4c94b442f17dfceba81e0134d4fbd19',
),
'topthink/think-trace' =>
array (
'pretty_version' => 'v1.4',
'version' => '1.4.0.0',
'aliases' =>
array (
),
'reference' => '9a9fa8f767b6c66c5a133ad21ca1bc96ad329444',
),
'topthink/think-view' =>
array (
'pretty_version' => 'v1.0.14',
'version' => '1.0.14.0',
'aliases' =>
array (
),
'reference' => 'edce0ae2c9551ab65f9e94a222604b0dead3576d',
),
),
);
public static function getInstalledPackages()
{
return array_keys(self::$installed['versions']);
}
public static function isInstalled($packageName)
{
return isset(self::$installed['versions'][$packageName]);
}
public static function satisfies(VersionParser $parser, $packageName, $constraint)
{
$constraint = $parser->parseConstraints($constraint);
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
return $provided->matches($constraint);
}
public static function getVersionRanges($packageName)
{
if (!isset(self::$installed['versions'][$packageName])) {
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
$ranges = array();
if (isset(self::$installed['versions'][$packageName]['pretty_version'])) {
$ranges[] = self::$installed['versions'][$packageName]['pretty_version'];
}
if (array_key_exists('aliases', self::$installed['versions'][$packageName])) {
$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['aliases']);
}
if (array_key_exists('replaced', self::$installed['versions'][$packageName])) {
$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['replaced']);
}
if (array_key_exists('provided', self::$installed['versions'][$packageName])) {
$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['provided']);
}
return implode(' || ', $ranges);
}
public static function getVersion($packageName)
{
if (!isset(self::$installed['versions'][$packageName])) {
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
if (!isset(self::$installed['versions'][$packageName]['version'])) {
return null;
}
return self::$installed['versions'][$packageName]['version'];
}
public static function getPrettyVersion($packageName)
{
if (!isset(self::$installed['versions'][$packageName])) {
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
if (!isset(self::$installed['versions'][$packageName]['pretty_version'])) {
return null;
}
return self::$installed['versions'][$packageName]['pretty_version'];
}
public static function getReference($packageName)
{
if (!isset(self::$installed['versions'][$packageName])) {
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
if (!isset(self::$installed['versions'][$packageName]['reference'])) {
return null;
}
return self::$installed['versions'][$packageName]['reference'];
}
public static function getRootPackage()
{
return self::$installed['root'];
}
public static function getRawData()
{
return self::$installed;
}
public static function reload($data)
{
self::$installed = $data;
}
}
-21
View File
@@ -1,21 +0,0 @@
Copyright (c) Nils Adermann, Jordi Boggiano
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
-642
View File
@@ -1,642 +0,0 @@
<?php
// autoload_classmap.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'Attribute' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
'League\\Flysystem\\AdapterInterface' => $vendorDir . '/league/flysystem/src/AdapterInterface.php',
'League\\Flysystem\\Adapter\\AbstractAdapter' => $vendorDir . '/league/flysystem/src/Adapter/AbstractAdapter.php',
'League\\Flysystem\\Adapter\\AbstractFtpAdapter' => $vendorDir . '/league/flysystem/src/Adapter/AbstractFtpAdapter.php',
'League\\Flysystem\\Adapter\\CanOverwriteFiles' => $vendorDir . '/league/flysystem/src/Adapter/CanOverwriteFiles.php',
'League\\Flysystem\\Adapter\\Ftp' => $vendorDir . '/league/flysystem/src/Adapter/Ftp.php',
'League\\Flysystem\\Adapter\\Ftpd' => $vendorDir . '/league/flysystem/src/Adapter/Ftpd.php',
'League\\Flysystem\\Adapter\\Local' => $vendorDir . '/league/flysystem/src/Adapter/Local.php',
'League\\Flysystem\\Adapter\\NullAdapter' => $vendorDir . '/league/flysystem/src/Adapter/NullAdapter.php',
'League\\Flysystem\\Adapter\\Polyfill\\NotSupportingVisibilityTrait' => $vendorDir . '/league/flysystem/src/Adapter/Polyfill/NotSupportingVisibilityTrait.php',
'League\\Flysystem\\Adapter\\Polyfill\\StreamedCopyTrait' => $vendorDir . '/league/flysystem/src/Adapter/Polyfill/StreamedCopyTrait.php',
'League\\Flysystem\\Adapter\\Polyfill\\StreamedReadingTrait' => $vendorDir . '/league/flysystem/src/Adapter/Polyfill/StreamedReadingTrait.php',
'League\\Flysystem\\Adapter\\Polyfill\\StreamedTrait' => $vendorDir . '/league/flysystem/src/Adapter/Polyfill/StreamedTrait.php',
'League\\Flysystem\\Adapter\\Polyfill\\StreamedWritingTrait' => $vendorDir . '/league/flysystem/src/Adapter/Polyfill/StreamedWritingTrait.php',
'League\\Flysystem\\Adapter\\SynologyFtp' => $vendorDir . '/league/flysystem/src/Adapter/SynologyFtp.php',
'League\\Flysystem\\Cached\\CacheInterface' => $vendorDir . '/league/flysystem-cached-adapter/src/CacheInterface.php',
'League\\Flysystem\\Cached\\CachedAdapter' => $vendorDir . '/league/flysystem-cached-adapter/src/CachedAdapter.php',
'League\\Flysystem\\Cached\\Storage\\AbstractCache' => $vendorDir . '/league/flysystem-cached-adapter/src/Storage/AbstractCache.php',
'League\\Flysystem\\Cached\\Storage\\Adapter' => $vendorDir . '/league/flysystem-cached-adapter/src/Storage/Adapter.php',
'League\\Flysystem\\Cached\\Storage\\Memcached' => $vendorDir . '/league/flysystem-cached-adapter/src/Storage/Memcached.php',
'League\\Flysystem\\Cached\\Storage\\Memory' => $vendorDir . '/league/flysystem-cached-adapter/src/Storage/Memory.php',
'League\\Flysystem\\Cached\\Storage\\Noop' => $vendorDir . '/league/flysystem-cached-adapter/src/Storage/Noop.php',
'League\\Flysystem\\Cached\\Storage\\PhpRedis' => $vendorDir . '/league/flysystem-cached-adapter/src/Storage/PhpRedis.php',
'League\\Flysystem\\Cached\\Storage\\Predis' => $vendorDir . '/league/flysystem-cached-adapter/src/Storage/Predis.php',
'League\\Flysystem\\Cached\\Storage\\Psr6Cache' => $vendorDir . '/league/flysystem-cached-adapter/src/Storage/Psr6Cache.php',
'League\\Flysystem\\Cached\\Storage\\Stash' => $vendorDir . '/league/flysystem-cached-adapter/src/Storage/Stash.php',
'League\\Flysystem\\Config' => $vendorDir . '/league/flysystem/src/Config.php',
'League\\Flysystem\\ConfigAwareTrait' => $vendorDir . '/league/flysystem/src/ConfigAwareTrait.php',
'League\\Flysystem\\ConnectionErrorException' => $vendorDir . '/league/flysystem/src/ConnectionErrorException.php',
'League\\Flysystem\\ConnectionRuntimeException' => $vendorDir . '/league/flysystem/src/ConnectionRuntimeException.php',
'League\\Flysystem\\Directory' => $vendorDir . '/league/flysystem/src/Directory.php',
'League\\Flysystem\\Exception' => $vendorDir . '/league/flysystem/src/Exception.php',
'League\\Flysystem\\File' => $vendorDir . '/league/flysystem/src/File.php',
'League\\Flysystem\\FileExistsException' => $vendorDir . '/league/flysystem/src/FileExistsException.php',
'League\\Flysystem\\FileNotFoundException' => $vendorDir . '/league/flysystem/src/FileNotFoundException.php',
'League\\Flysystem\\Filesystem' => $vendorDir . '/league/flysystem/src/Filesystem.php',
'League\\Flysystem\\FilesystemException' => $vendorDir . '/league/flysystem/src/FilesystemException.php',
'League\\Flysystem\\FilesystemInterface' => $vendorDir . '/league/flysystem/src/FilesystemInterface.php',
'League\\Flysystem\\FilesystemNotFoundException' => $vendorDir . '/league/flysystem/src/FilesystemNotFoundException.php',
'League\\Flysystem\\Handler' => $vendorDir . '/league/flysystem/src/Handler.php',
'League\\Flysystem\\InvalidRootException' => $vendorDir . '/league/flysystem/src/InvalidRootException.php',
'League\\Flysystem\\MountManager' => $vendorDir . '/league/flysystem/src/MountManager.php',
'League\\Flysystem\\NotSupportedException' => $vendorDir . '/league/flysystem/src/NotSupportedException.php',
'League\\Flysystem\\PluginInterface' => $vendorDir . '/league/flysystem/src/PluginInterface.php',
'League\\Flysystem\\Plugin\\AbstractPlugin' => $vendorDir . '/league/flysystem/src/Plugin/AbstractPlugin.php',
'League\\Flysystem\\Plugin\\EmptyDir' => $vendorDir . '/league/flysystem/src/Plugin/EmptyDir.php',
'League\\Flysystem\\Plugin\\ForcedCopy' => $vendorDir . '/league/flysystem/src/Plugin/ForcedCopy.php',
'League\\Flysystem\\Plugin\\ForcedRename' => $vendorDir . '/league/flysystem/src/Plugin/ForcedRename.php',
'League\\Flysystem\\Plugin\\GetWithMetadata' => $vendorDir . '/league/flysystem/src/Plugin/GetWithMetadata.php',
'League\\Flysystem\\Plugin\\ListFiles' => $vendorDir . '/league/flysystem/src/Plugin/ListFiles.php',
'League\\Flysystem\\Plugin\\ListPaths' => $vendorDir . '/league/flysystem/src/Plugin/ListPaths.php',
'League\\Flysystem\\Plugin\\ListWith' => $vendorDir . '/league/flysystem/src/Plugin/ListWith.php',
'League\\Flysystem\\Plugin\\PluggableTrait' => $vendorDir . '/league/flysystem/src/Plugin/PluggableTrait.php',
'League\\Flysystem\\Plugin\\PluginNotFoundException' => $vendorDir . '/league/flysystem/src/Plugin/PluginNotFoundException.php',
'League\\Flysystem\\ReadInterface' => $vendorDir . '/league/flysystem/src/ReadInterface.php',
'League\\Flysystem\\RootViolationException' => $vendorDir . '/league/flysystem/src/RootViolationException.php',
'League\\Flysystem\\SafeStorage' => $vendorDir . '/league/flysystem/src/SafeStorage.php',
'League\\Flysystem\\UnreadableFileException' => $vendorDir . '/league/flysystem/src/UnreadableFileException.php',
'League\\Flysystem\\Util' => $vendorDir . '/league/flysystem/src/Util.php',
'League\\Flysystem\\Util\\ContentListingFormatter' => $vendorDir . '/league/flysystem/src/Util/ContentListingFormatter.php',
'League\\Flysystem\\Util\\MimeType' => $vendorDir . '/league/flysystem/src/Util/MimeType.php',
'League\\Flysystem\\Util\\StreamHasher' => $vendorDir . '/league/flysystem/src/Util/StreamHasher.php',
'League\\MimeTypeDetection\\EmptyExtensionToMimeTypeMap' => $vendorDir . '/league/mime-type-detection/src/EmptyExtensionToMimeTypeMap.php',
'League\\MimeTypeDetection\\ExtensionMimeTypeDetector' => $vendorDir . '/league/mime-type-detection/src/ExtensionMimeTypeDetector.php',
'League\\MimeTypeDetection\\ExtensionToMimeTypeMap' => $vendorDir . '/league/mime-type-detection/src/ExtensionToMimeTypeMap.php',
'League\\MimeTypeDetection\\FinfoMimeTypeDetector' => $vendorDir . '/league/mime-type-detection/src/FinfoMimeTypeDetector.php',
'League\\MimeTypeDetection\\GeneratedExtensionToMimeTypeMap' => $vendorDir . '/league/mime-type-detection/src/GeneratedExtensionToMimeTypeMap.php',
'League\\MimeTypeDetection\\MimeTypeDetector' => $vendorDir . '/league/mime-type-detection/src/MimeTypeDetector.php',
'Nette\\ArgumentOutOfRangeException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php',
'Nette\\DeprecatedException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php',
'Nette\\DirectoryNotFoundException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php',
'Nette\\FileNotFoundException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php',
'Nette\\IOException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php',
'Nette\\InvalidArgumentException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php',
'Nette\\InvalidStateException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php',
'Nette\\Iterators\\CachingIterator' => $vendorDir . '/nette/utils/src/Iterators/CachingIterator.php',
'Nette\\Iterators\\Mapper' => $vendorDir . '/nette/utils/src/Iterators/Mapper.php',
'Nette\\Localization\\ITranslator' => $vendorDir . '/nette/utils/src/Utils/ITranslator.php',
'Nette\\MemberAccessException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php',
'Nette\\NotImplementedException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php',
'Nette\\NotSupportedException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php',
'Nette\\OutOfRangeException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php',
'Nette\\PhpGenerator\\ClassType' => $vendorDir . '/nette/php-generator/src/PhpGenerator/ClassType.php',
'Nette\\PhpGenerator\\Closure' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Closure.php',
'Nette\\PhpGenerator\\Constant' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Constant.php',
'Nette\\PhpGenerator\\Dumper' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Dumper.php',
'Nette\\PhpGenerator\\Factory' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Factory.php',
'Nette\\PhpGenerator\\GlobalFunction' => $vendorDir . '/nette/php-generator/src/PhpGenerator/GlobalFunction.php',
'Nette\\PhpGenerator\\Helpers' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Helpers.php',
'Nette\\PhpGenerator\\Literal' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Literal.php',
'Nette\\PhpGenerator\\Method' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Method.php',
'Nette\\PhpGenerator\\Parameter' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Parameter.php',
'Nette\\PhpGenerator\\PhpFile' => $vendorDir . '/nette/php-generator/src/PhpGenerator/PhpFile.php',
'Nette\\PhpGenerator\\PhpLiteral' => $vendorDir . '/nette/php-generator/src/PhpGenerator/PhpLiteral.php',
'Nette\\PhpGenerator\\PhpNamespace' => $vendorDir . '/nette/php-generator/src/PhpGenerator/PhpNamespace.php',
'Nette\\PhpGenerator\\Printer' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Printer.php',
'Nette\\PhpGenerator\\Property' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Property.php',
'Nette\\PhpGenerator\\PsrPrinter' => $vendorDir . '/nette/php-generator/src/PhpGenerator/PsrPrinter.php',
'Nette\\PhpGenerator\\Traits\\CommentAware' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Traits/CommentAware.php',
'Nette\\PhpGenerator\\Traits\\FunctionLike' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Traits/FunctionLike.php',
'Nette\\PhpGenerator\\Traits\\NameAware' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Traits/NameAware.php',
'Nette\\PhpGenerator\\Traits\\VisibilityAware' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Traits/VisibilityAware.php',
'Nette\\PhpGenerator\\Type' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Type.php',
'Nette\\SmartObject' => $vendorDir . '/nette/utils/src/Utils/SmartObject.php',
'Nette\\StaticClass' => $vendorDir . '/nette/utils/src/Utils/StaticClass.php',
'Nette\\UnexpectedValueException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php',
'Nette\\Utils\\ArrayHash' => $vendorDir . '/nette/utils/src/Utils/ArrayHash.php',
'Nette\\Utils\\ArrayList' => $vendorDir . '/nette/utils/src/Utils/ArrayList.php',
'Nette\\Utils\\Arrays' => $vendorDir . '/nette/utils/src/Utils/Arrays.php',
'Nette\\Utils\\AssertionException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php',
'Nette\\Utils\\Callback' => $vendorDir . '/nette/utils/src/Utils/Callback.php',
'Nette\\Utils\\DateTime' => $vendorDir . '/nette/utils/src/Utils/DateTime.php',
'Nette\\Utils\\FileSystem' => $vendorDir . '/nette/utils/src/Utils/FileSystem.php',
'Nette\\Utils\\Helpers' => $vendorDir . '/nette/utils/src/Utils/Helpers.php',
'Nette\\Utils\\Html' => $vendorDir . '/nette/utils/src/Utils/Html.php',
'Nette\\Utils\\IHtmlString' => $vendorDir . '/nette/utils/src/Utils/IHtmlString.php',
'Nette\\Utils\\Image' => $vendorDir . '/nette/utils/src/Utils/Image.php',
'Nette\\Utils\\ImageException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php',
'Nette\\Utils\\Json' => $vendorDir . '/nette/utils/src/Utils/Json.php',
'Nette\\Utils\\JsonException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php',
'Nette\\Utils\\ObjectHelpers' => $vendorDir . '/nette/utils/src/Utils/ObjectHelpers.php',
'Nette\\Utils\\ObjectMixin' => $vendorDir . '/nette/utils/src/Utils/ObjectMixin.php',
'Nette\\Utils\\Paginator' => $vendorDir . '/nette/utils/src/Utils/Paginator.php',
'Nette\\Utils\\Random' => $vendorDir . '/nette/utils/src/Utils/Random.php',
'Nette\\Utils\\Reflection' => $vendorDir . '/nette/utils/src/Utils/Reflection.php',
'Nette\\Utils\\RegexpException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php',
'Nette\\Utils\\Strings' => $vendorDir . '/nette/utils/src/Utils/Strings.php',
'Nette\\Utils\\UnknownImageFileException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php',
'Nette\\Utils\\Validators' => $vendorDir . '/nette/utils/src/Utils/Validators.php',
'Psr\\Cache\\CacheException' => $vendorDir . '/psr/cache/src/CacheException.php',
'Psr\\Cache\\CacheItemInterface' => $vendorDir . '/psr/cache/src/CacheItemInterface.php',
'Psr\\Cache\\CacheItemPoolInterface' => $vendorDir . '/psr/cache/src/CacheItemPoolInterface.php',
'Psr\\Cache\\InvalidArgumentException' => $vendorDir . '/psr/cache/src/InvalidArgumentException.php',
'Psr\\Container\\ContainerExceptionInterface' => $vendorDir . '/psr/container/src/ContainerExceptionInterface.php',
'Psr\\Container\\ContainerInterface' => $vendorDir . '/psr/container/src/ContainerInterface.php',
'Psr\\Container\\NotFoundExceptionInterface' => $vendorDir . '/psr/container/src/NotFoundExceptionInterface.php',
'Psr\\Log\\AbstractLogger' => $vendorDir . '/psr/log/Psr/Log/AbstractLogger.php',
'Psr\\Log\\InvalidArgumentException' => $vendorDir . '/psr/log/Psr/Log/InvalidArgumentException.php',
'Psr\\Log\\LogLevel' => $vendorDir . '/psr/log/Psr/Log/LogLevel.php',
'Psr\\Log\\LoggerAwareInterface' => $vendorDir . '/psr/log/Psr/Log/LoggerAwareInterface.php',
'Psr\\Log\\LoggerAwareTrait' => $vendorDir . '/psr/log/Psr/Log/LoggerAwareTrait.php',
'Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/Psr/Log/LoggerInterface.php',
'Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/Psr/Log/LoggerTrait.php',
'Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/Psr/Log/NullLogger.php',
'Psr\\Log\\Test\\DummyTest' => $vendorDir . '/psr/log/Psr/Log/Test/DummyTest.php',
'Psr\\Log\\Test\\LoggerInterfaceTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
'Psr\\Log\\Test\\TestLogger' => $vendorDir . '/psr/log/Psr/Log/Test/TestLogger.php',
'Psr\\SimpleCache\\CacheException' => $vendorDir . '/psr/simple-cache/src/CacheException.php',
'Psr\\SimpleCache\\CacheInterface' => $vendorDir . '/psr/simple-cache/src/CacheInterface.php',
'Psr\\SimpleCache\\InvalidArgumentException' => $vendorDir . '/psr/simple-cache/src/InvalidArgumentException.php',
'Smf\\ConnectionPool\\BorrowConnectionTimeoutException' => $vendorDir . '/open-smf/connection-pool/src/BorrowConnectionTimeoutException.php',
'Smf\\ConnectionPool\\ConnectionPool' => $vendorDir . '/open-smf/connection-pool/src/ConnectionPool.php',
'Smf\\ConnectionPool\\ConnectionPoolInterface' => $vendorDir . '/open-smf/connection-pool/src/ConnectionPoolInterface.php',
'Smf\\ConnectionPool\\ConnectionPoolTrait' => $vendorDir . '/open-smf/connection-pool/src/ConnectionPoolTrait.php',
'Smf\\ConnectionPool\\Connectors\\ConnectorInterface' => $vendorDir . '/open-smf/connection-pool/src/Connectors/ConnectorInterface.php',
'Smf\\ConnectionPool\\Connectors\\CoroutineMySQLConnector' => $vendorDir . '/open-smf/connection-pool/src/Connectors/CoroutineMySQLConnector.php',
'Smf\\ConnectionPool\\Connectors\\CoroutinePostgreSQLConnector' => $vendorDir . '/open-smf/connection-pool/src/Connectors/CoroutinePostgreSQLConnector.php',
'Smf\\ConnectionPool\\Connectors\\CoroutineRedisConnector' => $vendorDir . '/open-smf/connection-pool/src/Connectors/CoroutineRedisConnector.php',
'Smf\\ConnectionPool\\Connectors\\PDOConnector' => $vendorDir . '/open-smf/connection-pool/src/Connectors/PDOConnector.php',
'Smf\\ConnectionPool\\Connectors\\PhpRedisConnector' => $vendorDir . '/open-smf/connection-pool/src/Connectors/PhpRedisConnector.php',
'Stringable' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Stringable.php',
'Symfony\\Component\\Finder\\Comparator\\Comparator' => $vendorDir . '/symfony/finder/Comparator/Comparator.php',
'Symfony\\Component\\Finder\\Comparator\\DateComparator' => $vendorDir . '/symfony/finder/Comparator/DateComparator.php',
'Symfony\\Component\\Finder\\Comparator\\NumberComparator' => $vendorDir . '/symfony/finder/Comparator/NumberComparator.php',
'Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => $vendorDir . '/symfony/finder/Exception/AccessDeniedException.php',
'Symfony\\Component\\Finder\\Exception\\DirectoryNotFoundException' => $vendorDir . '/symfony/finder/Exception/DirectoryNotFoundException.php',
'Symfony\\Component\\Finder\\Finder' => $vendorDir . '/symfony/finder/Finder.php',
'Symfony\\Component\\Finder\\Gitignore' => $vendorDir . '/symfony/finder/Gitignore.php',
'Symfony\\Component\\Finder\\Glob' => $vendorDir . '/symfony/finder/Glob.php',
'Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => $vendorDir . '/symfony/finder/Iterator/CustomFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\DateRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DateRangeFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\DepthRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DepthRangeFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\ExcludeDirectoryFilterIterator' => $vendorDir . '/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FileTypeFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilecontentFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilenameFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => $vendorDir . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => $vendorDir . '/symfony/finder/Iterator/PathFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => $vendorDir . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php',
'Symfony\\Component\\Finder\\Iterator\\SizeRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/SizeRangeFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\SortableIterator' => $vendorDir . '/symfony/finder/Iterator/SortableIterator.php',
'Symfony\\Component\\Finder\\SplFileInfo' => $vendorDir . '/symfony/finder/SplFileInfo.php',
'Symfony\\Component\\VarDumper\\Caster\\AmqpCaster' => $vendorDir . '/symfony/var-dumper/Caster/AmqpCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\ArgsStub' => $vendorDir . '/symfony/var-dumper/Caster/ArgsStub.php',
'Symfony\\Component\\VarDumper\\Caster\\Caster' => $vendorDir . '/symfony/var-dumper/Caster/Caster.php',
'Symfony\\Component\\VarDumper\\Caster\\ClassStub' => $vendorDir . '/symfony/var-dumper/Caster/ClassStub.php',
'Symfony\\Component\\VarDumper\\Caster\\ConstStub' => $vendorDir . '/symfony/var-dumper/Caster/ConstStub.php',
'Symfony\\Component\\VarDumper\\Caster\\CutArrayStub' => $vendorDir . '/symfony/var-dumper/Caster/CutArrayStub.php',
'Symfony\\Component\\VarDumper\\Caster\\CutStub' => $vendorDir . '/symfony/var-dumper/Caster/CutStub.php',
'Symfony\\Component\\VarDumper\\Caster\\DOMCaster' => $vendorDir . '/symfony/var-dumper/Caster/DOMCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\DateCaster' => $vendorDir . '/symfony/var-dumper/Caster/DateCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\DoctrineCaster' => $vendorDir . '/symfony/var-dumper/Caster/DoctrineCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\DsCaster' => $vendorDir . '/symfony/var-dumper/Caster/DsCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\DsPairStub' => $vendorDir . '/symfony/var-dumper/Caster/DsPairStub.php',
'Symfony\\Component\\VarDumper\\Caster\\EnumStub' => $vendorDir . '/symfony/var-dumper/Caster/EnumStub.php',
'Symfony\\Component\\VarDumper\\Caster\\ExceptionCaster' => $vendorDir . '/symfony/var-dumper/Caster/ExceptionCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\FrameStub' => $vendorDir . '/symfony/var-dumper/Caster/FrameStub.php',
'Symfony\\Component\\VarDumper\\Caster\\GmpCaster' => $vendorDir . '/symfony/var-dumper/Caster/GmpCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\ImagineCaster' => $vendorDir . '/symfony/var-dumper/Caster/ImagineCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\ImgStub' => $vendorDir . '/symfony/var-dumper/Caster/ImgStub.php',
'Symfony\\Component\\VarDumper\\Caster\\IntlCaster' => $vendorDir . '/symfony/var-dumper/Caster/IntlCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\LinkStub' => $vendorDir . '/symfony/var-dumper/Caster/LinkStub.php',
'Symfony\\Component\\VarDumper\\Caster\\MemcachedCaster' => $vendorDir . '/symfony/var-dumper/Caster/MemcachedCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\PdoCaster' => $vendorDir . '/symfony/var-dumper/Caster/PdoCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\PgSqlCaster' => $vendorDir . '/symfony/var-dumper/Caster/PgSqlCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\ProxyManagerCaster' => $vendorDir . '/symfony/var-dumper/Caster/ProxyManagerCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\RedisCaster' => $vendorDir . '/symfony/var-dumper/Caster/RedisCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\ReflectionCaster' => $vendorDir . '/symfony/var-dumper/Caster/ReflectionCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\ResourceCaster' => $vendorDir . '/symfony/var-dumper/Caster/ResourceCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\SplCaster' => $vendorDir . '/symfony/var-dumper/Caster/SplCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\StubCaster' => $vendorDir . '/symfony/var-dumper/Caster/StubCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\SymfonyCaster' => $vendorDir . '/symfony/var-dumper/Caster/SymfonyCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\TraceStub' => $vendorDir . '/symfony/var-dumper/Caster/TraceStub.php',
'Symfony\\Component\\VarDumper\\Caster\\UuidCaster' => $vendorDir . '/symfony/var-dumper/Caster/UuidCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\XmlReaderCaster' => $vendorDir . '/symfony/var-dumper/Caster/XmlReaderCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\XmlResourceCaster' => $vendorDir . '/symfony/var-dumper/Caster/XmlResourceCaster.php',
'Symfony\\Component\\VarDumper\\Cloner\\AbstractCloner' => $vendorDir . '/symfony/var-dumper/Cloner/AbstractCloner.php',
'Symfony\\Component\\VarDumper\\Cloner\\ClonerInterface' => $vendorDir . '/symfony/var-dumper/Cloner/ClonerInterface.php',
'Symfony\\Component\\VarDumper\\Cloner\\Cursor' => $vendorDir . '/symfony/var-dumper/Cloner/Cursor.php',
'Symfony\\Component\\VarDumper\\Cloner\\Data' => $vendorDir . '/symfony/var-dumper/Cloner/Data.php',
'Symfony\\Component\\VarDumper\\Cloner\\DumperInterface' => $vendorDir . '/symfony/var-dumper/Cloner/DumperInterface.php',
'Symfony\\Component\\VarDumper\\Cloner\\Stub' => $vendorDir . '/symfony/var-dumper/Cloner/Stub.php',
'Symfony\\Component\\VarDumper\\Cloner\\VarCloner' => $vendorDir . '/symfony/var-dumper/Cloner/VarCloner.php',
'Symfony\\Component\\VarDumper\\Command\\Descriptor\\CliDescriptor' => $vendorDir . '/symfony/var-dumper/Command/Descriptor/CliDescriptor.php',
'Symfony\\Component\\VarDumper\\Command\\Descriptor\\DumpDescriptorInterface' => $vendorDir . '/symfony/var-dumper/Command/Descriptor/DumpDescriptorInterface.php',
'Symfony\\Component\\VarDumper\\Command\\Descriptor\\HtmlDescriptor' => $vendorDir . '/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php',
'Symfony\\Component\\VarDumper\\Command\\ServerDumpCommand' => $vendorDir . '/symfony/var-dumper/Command/ServerDumpCommand.php',
'Symfony\\Component\\VarDumper\\Dumper\\AbstractDumper' => $vendorDir . '/symfony/var-dumper/Dumper/AbstractDumper.php',
'Symfony\\Component\\VarDumper\\Dumper\\CliDumper' => $vendorDir . '/symfony/var-dumper/Dumper/CliDumper.php',
'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\CliContextProvider' => $vendorDir . '/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php',
'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\ContextProviderInterface' => $vendorDir . '/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php',
'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\RequestContextProvider' => $vendorDir . '/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php',
'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\SourceContextProvider' => $vendorDir . '/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php',
'Symfony\\Component\\VarDumper\\Dumper\\ContextualizedDumper' => $vendorDir . '/symfony/var-dumper/Dumper/ContextualizedDumper.php',
'Symfony\\Component\\VarDumper\\Dumper\\DataDumperInterface' => $vendorDir . '/symfony/var-dumper/Dumper/DataDumperInterface.php',
'Symfony\\Component\\VarDumper\\Dumper\\HtmlDumper' => $vendorDir . '/symfony/var-dumper/Dumper/HtmlDumper.php',
'Symfony\\Component\\VarDumper\\Dumper\\ServerDumper' => $vendorDir . '/symfony/var-dumper/Dumper/ServerDumper.php',
'Symfony\\Component\\VarDumper\\Exception\\ThrowingCasterException' => $vendorDir . '/symfony/var-dumper/Exception/ThrowingCasterException.php',
'Symfony\\Component\\VarDumper\\Server\\Connection' => $vendorDir . '/symfony/var-dumper/Server/Connection.php',
'Symfony\\Component\\VarDumper\\Server\\DumpServer' => $vendorDir . '/symfony/var-dumper/Server/DumpServer.php',
'Symfony\\Component\\VarDumper\\Test\\VarDumperTestTrait' => $vendorDir . '/symfony/var-dumper/Test/VarDumperTestTrait.php',
'Symfony\\Component\\VarDumper\\VarDumper' => $vendorDir . '/symfony/var-dumper/VarDumper.php',
'Symfony\\Polyfill\\Mbstring\\Mbstring' => $vendorDir . '/symfony/polyfill-mbstring/Mbstring.php',
'Symfony\\Polyfill\\Php72\\Php72' => $vendorDir . '/symfony/polyfill-php72/Php72.php',
'Symfony\\Polyfill\\Php80\\Php80' => $vendorDir . '/symfony/polyfill-php80/Php80.php',
'UnhandledMatchError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php',
'ValueError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/ValueError.php',
'app\\AppService' => $baseDir . '/app/AppService.php',
'app\\ExceptionHandle' => $baseDir . '/app/ExceptionHandle.php',
'app\\Request' => $baseDir . '/app/Request.php',
'app\\handle\\controller\\Common' => $baseDir . '/app/handle/controller/Common.php',
'app\\handle\\controller\\Index' => $baseDir . '/app/handle/controller/Index.php',
'app\\handle\\controller\\Login' => $baseDir . '/app/handle/controller/Login.php',
'app\\handle\\controller\\Scan' => $baseDir . '/app/handle/controller/Scan.php',
'app\\index\\controller\\Common' => $baseDir . '/app/index/controller/Common.php',
'app\\index\\controller\\Index' => $baseDir . '/app/index/controller/Index.php',
'app\\index\\controller\\Login' => $baseDir . '/app/index/controller/Login.php',
'app\\index\\middleware\\checkLogin' => $baseDir . '/app/index/middleware/checkLogin.php',
'app\\listener\\GetState' => $baseDir . '/app/listener/GetState.php',
'app\\listener\\WsClose' => $baseDir . '/app/listener/WsClose.php',
'app\\listener\\WsConnect' => $baseDir . '/app/listener/WsConnect.php',
'app\\listener\\scan\\Baccarat' => $baseDir . '/app/listener/scan/Baccarat.php',
'app\\listener\\scan\\Dt' => $baseDir . '/app/listener/scan/Dt.php',
'app\\listener\\scan\\Nn' => $baseDir . '/app/listener/scan/Nn.php',
'app\\listener\\scan\\Tc' => $baseDir . '/app/listener/scan/Tc.php',
'app\\listener\\space\\ChangeBoot' => $baseDir . '/app/listener/space/ChangeBoot.php',
'app\\listener\\space\\EndBet' => $baseDir . '/app/listener/space/EndBet.php',
'app\\listener\\space\\EndRob' => $baseDir . '/app/listener/space/EndRob.php',
'app\\listener\\space\\OpeningBaccarat' => $baseDir . '/app/listener/space/OpeningBaccarat.php',
'app\\listener\\space\\OpeningDt' => $baseDir . '/app/listener/space/OpeningDt.php',
'app\\listener\\space\\OpeningNn' => $baseDir . '/app/listener/space/OpeningNn.php',
'app\\listener\\space\\OpeningTc' => $baseDir . '/app/listener/space/OpeningTc.php',
'app\\listener\\space\\ResetBoot' => $baseDir . '/app/listener/space/ResetBoot.php',
'app\\listener\\space\\ResetNumberTab' => $baseDir . '/app/listener/space/ResetNumberTab.php',
'app\\listener\\space\\StartBet' => $baseDir . '/app/listener/space/StartBet.php',
'app\\listener\\space\\StartRob' => $baseDir . '/app/listener/space/StartRob.php',
'app\\listener\\user\\CancelBet' => $baseDir . '/app/listener/user/CancelBet.php',
'app\\listener\\user\\ToBet' => $baseDir . '/app/listener/user/ToBet.php',
'app\\listener\\user\\ToRob' => $baseDir . '/app/listener/user/ToRob.php',
'app\\middleware\\checkLogin' => $baseDir . '/app/middleware/checkLogin.php',
'app\\models\\bet\\Bet' => $baseDir . '/app/models/bet/Bet.php',
'app\\models\\bet\\Cs' => $baseDir . '/app/models/bet/Cs.php',
'app\\models\\bet\\Xima' => $baseDir . '/app/models/bet/Xima.php',
'app\\models\\process\\Boot' => $baseDir . '/app/models/process/Boot.php',
'app\\models\\process\\NumberTab' => $baseDir . '/app/models/process/NumberTab.php',
'app\\models\\process\\RetreatedLog' => $baseDir . '/app/models/process/RetreatedLog.php',
'app\\models\\process\\Sumday' => $baseDir . '/app/models/process/Sumday.php',
'app\\models\\process\\WaybillRemind' => $baseDir . '/app/models/process/WaybillRemind.php',
'app\\models\\table\\ScanAccount' => $baseDir . '/app/models/table/ScanAccount.php',
'app\\models\\table\\Table' => $baseDir . '/app/models/table/Table.php',
'app\\models\\table\\UserController' => $baseDir . '/app/models/table/UserController.php',
'app\\models\\user\\User' => $baseDir . '/app/models/user/User.php',
'app\\services\\bet\\CancelBetService' => $baseDir . '/app/services/bet/CancelBetService.php',
'app\\services\\bet\\ToBetBaccaratService' => $baseDir . '/app/services/bet/ToBetBaccaratService.php',
'app\\services\\bet\\ToBetCommonService' => $baseDir . '/app/services/bet/ToBetCommonService.php',
'app\\services\\bet\\ToBetDtService' => $baseDir . '/app/services/bet/ToBetDtService.php',
'app\\services\\bet\\ToBetNnService' => $baseDir . '/app/services/bet/ToBetNnService.php',
'app\\services\\bet\\ToBetTcService' => $baseDir . '/app/services/bet/ToBetTcService.php',
'app\\services\\bet\\ToRobService' => $baseDir . '/app/services/bet/ToRobService.php',
'app\\services\\connect\\GetCardService' => $baseDir . '/app/services/connect/GetCardService.php',
'app\\services\\connect\\InitTableService' => $baseDir . '/app/services/connect/InitTableService.php',
'app\\services\\connect\\ScanConnectService' => $baseDir . '/app/services/connect/ScanConnectService.php',
'app\\services\\connect\\SpaceConnectService' => $baseDir . '/app/services/connect/SpaceConnectService.php',
'app\\services\\connect\\UserConnectService' => $baseDir . '/app/services/connect/UserConnectService.php',
'app\\services\\opening\\OpeningBaccaratService' => $baseDir . '/app/services/opening/OpeningBaccaratService.php',
'app\\services\\opening\\OpeningDtService' => $baseDir . '/app/services/opening/OpeningDtService.php',
'app\\services\\opening\\OpeningNnService' => $baseDir . '/app/services/opening/OpeningNnService.php',
'app\\services\\opening\\OpeningTcService' => $baseDir . '/app/services/opening/OpeningTcService.php',
'app\\services\\process\\CountdownService' => $baseDir . '/app/services/process/CountdownService.php',
'app\\services\\process\\EndBetService' => $baseDir . '/app/services/process/EndBetService.php',
'app\\services\\process\\EndRobService' => $baseDir . '/app/services/process/EndRobService.php',
'app\\services\\process\\ResetNumberTabService' => $baseDir . '/app/services/process/ResetNumberTabService.php',
'app\\services\\process\\StartBetService' => $baseDir . '/app/services/process/StartBetService.php',
'app\\services\\process\\StartRobService' => $baseDir . '/app/services/process/StartRobService.php',
'app\\services\\scan\\ScanBaccaratService' => $baseDir . '/app/services/scan/ScanBaccaratService.php',
'app\\services\\scan\\ScanCommonService' => $baseDir . '/app/services/scan/ScanCommonService.php',
'app\\services\\scan\\ScanDtService' => $baseDir . '/app/services/scan/ScanDtService.php',
'app\\services\\scan\\ScanNnService' => $baseDir . '/app/services/scan/ScanNnService.php',
'app\\services\\scan\\ScanTcService' => $baseDir . '/app/services/scan/ScanTcService.php',
'freedom\\basic\\BaseModel' => $baseDir . '/freedom/basic/BaseModel.php',
'freedom\\traits\\ModelTrait' => $baseDir . '/freedom/traits/ModelTrait.php',
'freedom\\utils\\CardPosition' => $baseDir . '/freedom/utils/CardPosition.php',
'freedom\\utils\\CardPositionNn' => $baseDir . '/freedom/utils/CardPositionNn.php',
'freedom\\utils\\CardPositionTc' => $baseDir . '/freedom/utils/CardPositionTc.php',
'freedom\\utils\\RedisUtil' => $baseDir . '/freedom/utils/RedisUtil.php',
'freedom\\utils\\SocketSession' => $baseDir . '/freedom/utils/SocketSession.php',
'freedom\\utils\\Waybill' => $baseDir . '/freedom/utils/Waybill.php',
'think\\App' => $vendorDir . '/topthink/framework/src/think/App.php',
'think\\Cache' => $vendorDir . '/topthink/framework/src/think/Cache.php',
'think\\Collection' => $vendorDir . '/topthink/think-helper/src/Collection.php',
'think\\Config' => $vendorDir . '/topthink/framework/src/think/Config.php',
'think\\Console' => $vendorDir . '/topthink/framework/src/think/Console.php',
'think\\Container' => $vendorDir . '/topthink/framework/src/think/Container.php',
'think\\Cookie' => $vendorDir . '/topthink/framework/src/think/Cookie.php',
'think\\Db' => $vendorDir . '/topthink/framework/src/think/Db.php',
'think\\DbManager' => $vendorDir . '/topthink/think-orm/src/DbManager.php',
'think\\Env' => $vendorDir . '/topthink/framework/src/think/Env.php',
'think\\Event' => $vendorDir . '/topthink/framework/src/think/Event.php',
'think\\Exception' => $vendorDir . '/topthink/framework/src/think/Exception.php',
'think\\Facade' => $vendorDir . '/topthink/framework/src/think/Facade.php',
'think\\File' => $vendorDir . '/topthink/framework/src/think/File.php',
'think\\Filesystem' => $vendorDir . '/topthink/framework/src/think/Filesystem.php',
'think\\Http' => $vendorDir . '/topthink/framework/src/think/Http.php',
'think\\Lang' => $vendorDir . '/topthink/framework/src/think/Lang.php',
'think\\Log' => $vendorDir . '/topthink/framework/src/think/Log.php',
'think\\Manager' => $vendorDir . '/topthink/framework/src/think/Manager.php',
'think\\Middleware' => $vendorDir . '/topthink/framework/src/think/Middleware.php',
'think\\Model' => $vendorDir . '/topthink/think-orm/src/Model.php',
'think\\Paginator' => $vendorDir . '/topthink/think-orm/src/Paginator.php',
'think\\Pipeline' => $vendorDir . '/topthink/framework/src/think/Pipeline.php',
'think\\Request' => $vendorDir . '/topthink/framework/src/think/Request.php',
'think\\Response' => $vendorDir . '/topthink/framework/src/think/Response.php',
'think\\Route' => $vendorDir . '/topthink/framework/src/think/Route.php',
'think\\Service' => $vendorDir . '/topthink/framework/src/think/Service.php',
'think\\Session' => $vendorDir . '/topthink/framework/src/think/Session.php',
'think\\Template' => $vendorDir . '/topthink/think-template/src/Template.php',
'think\\Validate' => $vendorDir . '/topthink/framework/src/think/Validate.php',
'think\\View' => $vendorDir . '/topthink/framework/src/think/View.php',
'think\\app\\MultiApp' => $vendorDir . '/topthink/think-multi-app/src/MultiApp.php',
'think\\app\\Service' => $vendorDir . '/topthink/think-multi-app/src/Service.php',
'think\\app\\Url' => $vendorDir . '/topthink/think-multi-app/src/Url.php',
'think\\app\\command\\Build' => $vendorDir . '/topthink/think-multi-app/src/command/Build.php',
'think\\app\\command\\Clear' => $vendorDir . '/topthink/think-multi-app/src/command/Clear.php',
'think\\cache\\Driver' => $vendorDir . '/topthink/framework/src/think/cache/Driver.php',
'think\\cache\\TagSet' => $vendorDir . '/topthink/framework/src/think/cache/TagSet.php',
'think\\cache\\driver\\File' => $vendorDir . '/topthink/framework/src/think/cache/driver/File.php',
'think\\cache\\driver\\Memcache' => $vendorDir . '/topthink/framework/src/think/cache/driver/Memcache.php',
'think\\cache\\driver\\Memcached' => $vendorDir . '/topthink/framework/src/think/cache/driver/Memcached.php',
'think\\cache\\driver\\Redis' => $vendorDir . '/topthink/framework/src/think/cache/driver/Redis.php',
'think\\cache\\driver\\Wincache' => $vendorDir . '/topthink/framework/src/think/cache/driver/Wincache.php',
'think\\captcha\\Captcha' => $vendorDir . '/topthink/think-captcha/src/Captcha.php',
'think\\captcha\\CaptchaController' => $vendorDir . '/topthink/think-captcha/src/CaptchaController.php',
'think\\captcha\\CaptchaService' => $vendorDir . '/topthink/think-captcha/src/CaptchaService.php',
'think\\captcha\\facade\\Captcha' => $vendorDir . '/topthink/think-captcha/src/facade/Captcha.php',
'think\\console\\Command' => $vendorDir . '/topthink/framework/src/think/console/Command.php',
'think\\console\\Input' => $vendorDir . '/topthink/framework/src/think/console/Input.php',
'think\\console\\Output' => $vendorDir . '/topthink/framework/src/think/console/Output.php',
'think\\console\\Table' => $vendorDir . '/topthink/framework/src/think/console/Table.php',
'think\\console\\command\\Clear' => $vendorDir . '/topthink/framework/src/think/console/command/Clear.php',
'think\\console\\command\\Help' => $vendorDir . '/topthink/framework/src/think/console/command/Help.php',
'think\\console\\command\\Lists' => $vendorDir . '/topthink/framework/src/think/console/command/Lists.php',
'think\\console\\command\\Make' => $vendorDir . '/topthink/framework/src/think/console/command/Make.php',
'think\\console\\command\\RouteList' => $vendorDir . '/topthink/framework/src/think/console/command/RouteList.php',
'think\\console\\command\\RunServer' => $vendorDir . '/topthink/framework/src/think/console/command/RunServer.php',
'think\\console\\command\\ServiceDiscover' => $vendorDir . '/topthink/framework/src/think/console/command/ServiceDiscover.php',
'think\\console\\command\\VendorPublish' => $vendorDir . '/topthink/framework/src/think/console/command/VendorPublish.php',
'think\\console\\command\\Version' => $vendorDir . '/topthink/framework/src/think/console/command/Version.php',
'think\\console\\command\\make\\Command' => $vendorDir . '/topthink/framework/src/think/console/command/make/Command.php',
'think\\console\\command\\make\\Controller' => $vendorDir . '/topthink/framework/src/think/console/command/make/Controller.php',
'think\\console\\command\\make\\Event' => $vendorDir . '/topthink/framework/src/think/console/command/make/Event.php',
'think\\console\\command\\make\\Listener' => $vendorDir . '/topthink/framework/src/think/console/command/make/Listener.php',
'think\\console\\command\\make\\Middleware' => $vendorDir . '/topthink/framework/src/think/console/command/make/Middleware.php',
'think\\console\\command\\make\\Model' => $vendorDir . '/topthink/framework/src/think/console/command/make/Model.php',
'think\\console\\command\\make\\Service' => $vendorDir . '/topthink/framework/src/think/console/command/make/Service.php',
'think\\console\\command\\make\\Subscribe' => $vendorDir . '/topthink/framework/src/think/console/command/make/Subscribe.php',
'think\\console\\command\\make\\Validate' => $vendorDir . '/topthink/framework/src/think/console/command/make/Validate.php',
'think\\console\\command\\optimize\\Route' => $vendorDir . '/topthink/framework/src/think/console/command/optimize/Route.php',
'think\\console\\command\\optimize\\Schema' => $vendorDir . '/topthink/framework/src/think/console/command/optimize/Schema.php',
'think\\console\\input\\Argument' => $vendorDir . '/topthink/framework/src/think/console/input/Argument.php',
'think\\console\\input\\Definition' => $vendorDir . '/topthink/framework/src/think/console/input/Definition.php',
'think\\console\\input\\Option' => $vendorDir . '/topthink/framework/src/think/console/input/Option.php',
'think\\console\\output\\Ask' => $vendorDir . '/topthink/framework/src/think/console/output/Ask.php',
'think\\console\\output\\Descriptor' => $vendorDir . '/topthink/framework/src/think/console/output/Descriptor.php',
'think\\console\\output\\Formatter' => $vendorDir . '/topthink/framework/src/think/console/output/Formatter.php',
'think\\console\\output\\Question' => $vendorDir . '/topthink/framework/src/think/console/output/Question.php',
'think\\console\\output\\descriptor\\Console' => $vendorDir . '/topthink/framework/src/think/console/output/descriptor/Console.php',
'think\\console\\output\\driver\\Buffer' => $vendorDir . '/topthink/framework/src/think/console/output/driver/Buffer.php',
'think\\console\\output\\driver\\Console' => $vendorDir . '/topthink/framework/src/think/console/output/driver/Console.php',
'think\\console\\output\\driver\\Nothing' => $vendorDir . '/topthink/framework/src/think/console/output/driver/Nothing.php',
'think\\console\\output\\formatter\\Stack' => $vendorDir . '/topthink/framework/src/think/console/output/formatter/Stack.php',
'think\\console\\output\\formatter\\Style' => $vendorDir . '/topthink/framework/src/think/console/output/formatter/Style.php',
'think\\console\\output\\question\\Choice' => $vendorDir . '/topthink/framework/src/think/console/output/question/Choice.php',
'think\\console\\output\\question\\Confirmation' => $vendorDir . '/topthink/framework/src/think/console/output/question/Confirmation.php',
'think\\contract\\Arrayable' => $vendorDir . '/topthink/think-helper/src/contract/Arrayable.php',
'think\\contract\\CacheHandlerInterface' => $vendorDir . '/topthink/framework/src/think/contract/CacheHandlerInterface.php',
'think\\contract\\Jsonable' => $vendorDir . '/topthink/think-helper/src/contract/Jsonable.php',
'think\\contract\\LogHandlerInterface' => $vendorDir . '/topthink/framework/src/think/contract/LogHandlerInterface.php',
'think\\contract\\ModelRelationInterface' => $vendorDir . '/topthink/framework/src/think/contract/ModelRelationInterface.php',
'think\\contract\\SessionHandlerInterface' => $vendorDir . '/topthink/framework/src/think/contract/SessionHandlerInterface.php',
'think\\contract\\TemplateHandlerInterface' => $vendorDir . '/topthink/framework/src/think/contract/TemplateHandlerInterface.php',
'think\\db\\BaseQuery' => $vendorDir . '/topthink/think-orm/src/db/BaseQuery.php',
'think\\db\\Builder' => $vendorDir . '/topthink/think-orm/src/db/Builder.php',
'think\\db\\CacheItem' => $vendorDir . '/topthink/think-orm/src/db/CacheItem.php',
'think\\db\\Connection' => $vendorDir . '/topthink/think-orm/src/db/Connection.php',
'think\\db\\ConnectionInterface' => $vendorDir . '/topthink/think-orm/src/db/ConnectionInterface.php',
'think\\db\\Fetch' => $vendorDir . '/topthink/think-orm/src/db/Fetch.php',
'think\\db\\Mongo' => $vendorDir . '/topthink/think-orm/src/db/Mongo.php',
'think\\db\\PDOConnection' => $vendorDir . '/topthink/think-orm/src/db/PDOConnection.php',
'think\\db\\Query' => $vendorDir . '/topthink/think-orm/src/db/Query.php',
'think\\db\\Raw' => $vendorDir . '/topthink/think-orm/src/db/Raw.php',
'think\\db\\Where' => $vendorDir . '/topthink/think-orm/src/db/Where.php',
'think\\db\\builder\\Mongo' => $vendorDir . '/topthink/think-orm/src/db/builder/Mongo.php',
'think\\db\\builder\\Mysql' => $vendorDir . '/topthink/think-orm/src/db/builder/Mysql.php',
'think\\db\\builder\\Oracle' => $vendorDir . '/topthink/think-orm/src/db/builder/Oracle.php',
'think\\db\\builder\\Pgsql' => $vendorDir . '/topthink/think-orm/src/db/builder/Pgsql.php',
'think\\db\\builder\\Sqlite' => $vendorDir . '/topthink/think-orm/src/db/builder/Sqlite.php',
'think\\db\\builder\\Sqlsrv' => $vendorDir . '/topthink/think-orm/src/db/builder/Sqlsrv.php',
'think\\db\\concern\\AggregateQuery' => $vendorDir . '/topthink/think-orm/src/db/concern/AggregateQuery.php',
'think\\db\\concern\\JoinAndViewQuery' => $vendorDir . '/topthink/think-orm/src/db/concern/JoinAndViewQuery.php',
'think\\db\\concern\\ModelRelationQuery' => $vendorDir . '/topthink/think-orm/src/db/concern/ModelRelationQuery.php',
'think\\db\\concern\\ParamsBind' => $vendorDir . '/topthink/think-orm/src/db/concern/ParamsBind.php',
'think\\db\\concern\\ResultOperation' => $vendorDir . '/topthink/think-orm/src/db/concern/ResultOperation.php',
'think\\db\\concern\\TableFieldInfo' => $vendorDir . '/topthink/think-orm/src/db/concern/TableFieldInfo.php',
'think\\db\\concern\\TimeFieldQuery' => $vendorDir . '/topthink/think-orm/src/db/concern/TimeFieldQuery.php',
'think\\db\\concern\\Transaction' => $vendorDir . '/topthink/think-orm/src/db/concern/Transaction.php',
'think\\db\\concern\\WhereQuery' => $vendorDir . '/topthink/think-orm/src/db/concern/WhereQuery.php',
'think\\db\\connector\\Mongo' => $vendorDir . '/topthink/think-orm/src/db/connector/Mongo.php',
'think\\db\\connector\\Mysql' => $vendorDir . '/topthink/think-orm/src/db/connector/Mysql.php',
'think\\db\\connector\\Oracle' => $vendorDir . '/topthink/think-orm/src/db/connector/Oracle.php',
'think\\db\\connector\\Pgsql' => $vendorDir . '/topthink/think-orm/src/db/connector/Pgsql.php',
'think\\db\\connector\\Sqlite' => $vendorDir . '/topthink/think-orm/src/db/connector/Sqlite.php',
'think\\db\\connector\\Sqlsrv' => $vendorDir . '/topthink/think-orm/src/db/connector/Sqlsrv.php',
'think\\db\\exception\\BindParamException' => $vendorDir . '/topthink/think-orm/src/db/exception/BindParamException.php',
'think\\db\\exception\\DataNotFoundException' => $vendorDir . '/topthink/think-orm/src/db/exception/DataNotFoundException.php',
'think\\db\\exception\\DbException' => $vendorDir . '/topthink/think-orm/src/db/exception/DbException.php',
'think\\db\\exception\\InvalidArgumentException' => $vendorDir . '/topthink/think-orm/src/db/exception/InvalidArgumentException.php',
'think\\db\\exception\\ModelEventException' => $vendorDir . '/topthink/think-orm/src/db/exception/ModelEventException.php',
'think\\db\\exception\\ModelNotFoundException' => $vendorDir . '/topthink/think-orm/src/db/exception/ModelNotFoundException.php',
'think\\db\\exception\\PDOException' => $vendorDir . '/topthink/think-orm/src/db/exception/PDOException.php',
'think\\event\\AppInit' => $vendorDir . '/topthink/framework/src/think/event/AppInit.php',
'think\\event\\HttpEnd' => $vendorDir . '/topthink/framework/src/think/event/HttpEnd.php',
'think\\event\\HttpRun' => $vendorDir . '/topthink/framework/src/think/event/HttpRun.php',
'think\\event\\LogWrite' => $vendorDir . '/topthink/framework/src/think/event/LogWrite.php',
'think\\event\\RouteLoaded' => $vendorDir . '/topthink/framework/src/think/event/RouteLoaded.php',
'think\\exception\\ClassNotFoundException' => $vendorDir . '/topthink/framework/src/think/exception/ClassNotFoundException.php',
'think\\exception\\ErrorException' => $vendorDir . '/topthink/framework/src/think/exception/ErrorException.php',
'think\\exception\\FileException' => $vendorDir . '/topthink/framework/src/think/exception/FileException.php',
'think\\exception\\FuncNotFoundException' => $vendorDir . '/topthink/framework/src/think/exception/FuncNotFoundException.php',
'think\\exception\\Handle' => $vendorDir . '/topthink/framework/src/think/exception/Handle.php',
'think\\exception\\HttpException' => $vendorDir . '/topthink/framework/src/think/exception/HttpException.php',
'think\\exception\\HttpResponseException' => $vendorDir . '/topthink/framework/src/think/exception/HttpResponseException.php',
'think\\exception\\InvalidArgumentException' => $vendorDir . '/topthink/framework/src/think/exception/InvalidArgumentException.php',
'think\\exception\\RouteNotFoundException' => $vendorDir . '/topthink/framework/src/think/exception/RouteNotFoundException.php',
'think\\exception\\ValidateException' => $vendorDir . '/topthink/framework/src/think/exception/ValidateException.php',
'think\\facade\\App' => $vendorDir . '/topthink/framework/src/think/facade/App.php',
'think\\facade\\Cache' => $vendorDir . '/topthink/framework/src/think/facade/Cache.php',
'think\\facade\\Config' => $vendorDir . '/topthink/framework/src/think/facade/Config.php',
'think\\facade\\Console' => $vendorDir . '/topthink/framework/src/think/facade/Console.php',
'think\\facade\\Cookie' => $vendorDir . '/topthink/framework/src/think/facade/Cookie.php',
'think\\facade\\Db' => $vendorDir . '/topthink/think-orm/src/facade/Db.php',
'think\\facade\\Env' => $vendorDir . '/topthink/framework/src/think/facade/Env.php',
'think\\facade\\Event' => $vendorDir . '/topthink/framework/src/think/facade/Event.php',
'think\\facade\\Filesystem' => $vendorDir . '/topthink/framework/src/think/facade/Filesystem.php',
'think\\facade\\Lang' => $vendorDir . '/topthink/framework/src/think/facade/Lang.php',
'think\\facade\\Log' => $vendorDir . '/topthink/framework/src/think/facade/Log.php',
'think\\facade\\Middleware' => $vendorDir . '/topthink/framework/src/think/facade/Middleware.php',
'think\\facade\\Request' => $vendorDir . '/topthink/framework/src/think/facade/Request.php',
'think\\facade\\Route' => $vendorDir . '/topthink/framework/src/think/facade/Route.php',
'think\\facade\\Session' => $vendorDir . '/topthink/framework/src/think/facade/Session.php',
'think\\facade\\Template' => $vendorDir . '/topthink/think-template/src/facade/Template.php',
'think\\facade\\Validate' => $vendorDir . '/topthink/framework/src/think/facade/Validate.php',
'think\\facade\\View' => $vendorDir . '/topthink/framework/src/think/facade/View.php',
'think\\file\\UploadedFile' => $vendorDir . '/topthink/framework/src/think/file/UploadedFile.php',
'think\\filesystem\\CacheStore' => $vendorDir . '/topthink/framework/src/think/filesystem/CacheStore.php',
'think\\filesystem\\Driver' => $vendorDir . '/topthink/framework/src/think/filesystem/Driver.php',
'think\\filesystem\\driver\\Local' => $vendorDir . '/topthink/framework/src/think/filesystem/driver/Local.php',
'think\\helper\\Arr' => $vendorDir . '/topthink/think-helper/src/helper/Arr.php',
'think\\helper\\Str' => $vendorDir . '/topthink/think-helper/src/helper/Str.php',
'think\\initializer\\BootService' => $vendorDir . '/topthink/framework/src/think/initializer/BootService.php',
'think\\initializer\\Error' => $vendorDir . '/topthink/framework/src/think/initializer/Error.php',
'think\\initializer\\RegisterService' => $vendorDir . '/topthink/framework/src/think/initializer/RegisterService.php',
'think\\log\\Channel' => $vendorDir . '/topthink/framework/src/think/log/Channel.php',
'think\\log\\ChannelSet' => $vendorDir . '/topthink/framework/src/think/log/ChannelSet.php',
'think\\log\\driver\\File' => $vendorDir . '/topthink/framework/src/think/log/driver/File.php',
'think\\log\\driver\\Socket' => $vendorDir . '/topthink/framework/src/think/log/driver/Socket.php',
'think\\middleware\\AllowCrossDomain' => $vendorDir . '/topthink/framework/src/think/middleware/AllowCrossDomain.php',
'think\\middleware\\CheckRequestCache' => $vendorDir . '/topthink/framework/src/think/middleware/CheckRequestCache.php',
'think\\middleware\\FormTokenCheck' => $vendorDir . '/topthink/framework/src/think/middleware/FormTokenCheck.php',
'think\\middleware\\LoadLangPack' => $vendorDir . '/topthink/framework/src/think/middleware/LoadLangPack.php',
'think\\middleware\\SessionInit' => $vendorDir . '/topthink/framework/src/think/middleware/SessionInit.php',
'think\\model\\Collection' => $vendorDir . '/topthink/think-orm/src/model/Collection.php',
'think\\model\\Pivot' => $vendorDir . '/topthink/think-orm/src/model/Pivot.php',
'think\\model\\Relation' => $vendorDir . '/topthink/think-orm/src/model/Relation.php',
'think\\model\\concern\\Attribute' => $vendorDir . '/topthink/think-orm/src/model/concern/Attribute.php',
'think\\model\\concern\\Conversion' => $vendorDir . '/topthink/think-orm/src/model/concern/Conversion.php',
'think\\model\\concern\\ModelEvent' => $vendorDir . '/topthink/think-orm/src/model/concern/ModelEvent.php',
'think\\model\\concern\\OptimLock' => $vendorDir . '/topthink/think-orm/src/model/concern/OptimLock.php',
'think\\model\\concern\\RelationShip' => $vendorDir . '/topthink/think-orm/src/model/concern/RelationShip.php',
'think\\model\\concern\\SoftDelete' => $vendorDir . '/topthink/think-orm/src/model/concern/SoftDelete.php',
'think\\model\\concern\\TimeStamp' => $vendorDir . '/topthink/think-orm/src/model/concern/TimeStamp.php',
'think\\model\\relation\\BelongsTo' => $vendorDir . '/topthink/think-orm/src/model/relation/BelongsTo.php',
'think\\model\\relation\\BelongsToMany' => $vendorDir . '/topthink/think-orm/src/model/relation/BelongsToMany.php',
'think\\model\\relation\\HasMany' => $vendorDir . '/topthink/think-orm/src/model/relation/HasMany.php',
'think\\model\\relation\\HasManyThrough' => $vendorDir . '/topthink/think-orm/src/model/relation/HasManyThrough.php',
'think\\model\\relation\\HasOne' => $vendorDir . '/topthink/think-orm/src/model/relation/HasOne.php',
'think\\model\\relation\\HasOneThrough' => $vendorDir . '/topthink/think-orm/src/model/relation/HasOneThrough.php',
'think\\model\\relation\\MorphMany' => $vendorDir . '/topthink/think-orm/src/model/relation/MorphMany.php',
'think\\model\\relation\\MorphOne' => $vendorDir . '/topthink/think-orm/src/model/relation/MorphOne.php',
'think\\model\\relation\\MorphTo' => $vendorDir . '/topthink/think-orm/src/model/relation/MorphTo.php',
'think\\model\\relation\\MorphToMany' => $vendorDir . '/topthink/think-orm/src/model/relation/MorphToMany.php',
'think\\model\\relation\\OneToOne' => $vendorDir . '/topthink/think-orm/src/model/relation/OneToOne.php',
'think\\paginator\\driver\\Bootstrap' => $vendorDir . '/topthink/think-orm/src/paginator/driver/Bootstrap.php',
'think\\response\\File' => $vendorDir . '/topthink/framework/src/think/response/File.php',
'think\\response\\Html' => $vendorDir . '/topthink/framework/src/think/response/Html.php',
'think\\response\\Json' => $vendorDir . '/topthink/framework/src/think/response/Json.php',
'think\\response\\Jsonp' => $vendorDir . '/topthink/framework/src/think/response/Jsonp.php',
'think\\response\\Redirect' => $vendorDir . '/topthink/framework/src/think/response/Redirect.php',
'think\\response\\View' => $vendorDir . '/topthink/framework/src/think/response/View.php',
'think\\response\\Xml' => $vendorDir . '/topthink/framework/src/think/response/Xml.php',
'think\\route\\Dispatch' => $vendorDir . '/topthink/framework/src/think/route/Dispatch.php',
'think\\route\\Domain' => $vendorDir . '/topthink/framework/src/think/route/Domain.php',
'think\\route\\Resource' => $vendorDir . '/topthink/framework/src/think/route/Resource.php',
'think\\route\\Rule' => $vendorDir . '/topthink/framework/src/think/route/Rule.php',
'think\\route\\RuleGroup' => $vendorDir . '/topthink/framework/src/think/route/RuleGroup.php',
'think\\route\\RuleItem' => $vendorDir . '/topthink/framework/src/think/route/RuleItem.php',
'think\\route\\RuleName' => $vendorDir . '/topthink/framework/src/think/route/RuleName.php',
'think\\route\\Url' => $vendorDir . '/topthink/framework/src/think/route/Url.php',
'think\\route\\dispatch\\Callback' => $vendorDir . '/topthink/framework/src/think/route/dispatch/Callback.php',
'think\\route\\dispatch\\Controller' => $vendorDir . '/topthink/framework/src/think/route/dispatch/Controller.php',
'think\\route\\dispatch\\Url' => $vendorDir . '/topthink/framework/src/think/route/dispatch/Url.php',
'think\\service\\ModelService' => $vendorDir . '/topthink/framework/src/think/service/ModelService.php',
'think\\service\\PaginatorService' => $vendorDir . '/topthink/framework/src/think/service/PaginatorService.php',
'think\\service\\ValidateService' => $vendorDir . '/topthink/framework/src/think/service/ValidateService.php',
'think\\session\\Store' => $vendorDir . '/topthink/framework/src/think/session/Store.php',
'think\\session\\driver\\Cache' => $vendorDir . '/topthink/framework/src/think/session/driver/Cache.php',
'think\\session\\driver\\File' => $vendorDir . '/topthink/framework/src/think/session/driver/File.php',
'think\\swoole\\App' => $vendorDir . '/topthink/think-swoole/src/App.php',
'think\\swoole\\FileWatcher' => $vendorDir . '/topthink/think-swoole/src/FileWatcher.php',
'think\\swoole\\Http' => $vendorDir . '/topthink/think-swoole/src/Http.php',
'think\\swoole\\Manager' => $vendorDir . '/topthink/think-swoole/src/Manager.php',
'think\\swoole\\PidManager' => $vendorDir . '/topthink/think-swoole/src/PidManager.php',
'think\\swoole\\Pool' => $vendorDir . '/topthink/think-swoole/src/Pool.php',
'think\\swoole\\RpcManager' => $vendorDir . '/topthink/think-swoole/src/RpcManager.php',
'think\\swoole\\Sandbox' => $vendorDir . '/topthink/think-swoole/src/Sandbox.php',
'think\\swoole\\Service' => $vendorDir . '/topthink/think-swoole/src/Service.php',
'think\\swoole\\Table' => $vendorDir . '/topthink/think-swoole/src/Table.php',
'think\\swoole\\Websocket' => $vendorDir . '/topthink/think-swoole/src/Websocket.php',
'think\\swoole\\command\\Rpc' => $vendorDir . '/topthink/think-swoole/src/command/Rpc.php',
'think\\swoole\\command\\RpcInterface' => $vendorDir . '/topthink/think-swoole/src/command/RpcInterface.php',
'think\\swoole\\command\\Server' => $vendorDir . '/topthink/think-swoole/src/command/Server.php',
'think\\swoole\\concerns\\InteractsWithHttp' => $vendorDir . '/topthink/think-swoole/src/concerns/InteractsWithHttp.php',
'think\\swoole\\concerns\\InteractsWithPools' => $vendorDir . '/topthink/think-swoole/src/concerns/InteractsWithPools.php',
'think\\swoole\\concerns\\InteractsWithRpcClient' => $vendorDir . '/topthink/think-swoole/src/concerns/InteractsWithRpcClient.php',
'think\\swoole\\concerns\\InteractsWithRpcServer' => $vendorDir . '/topthink/think-swoole/src/concerns/InteractsWithRpcServer.php',
'think\\swoole\\concerns\\InteractsWithServer' => $vendorDir . '/topthink/think-swoole/src/concerns/InteractsWithServer.php',
'think\\swoole\\concerns\\InteractsWithSwooleTable' => $vendorDir . '/topthink/think-swoole/src/concerns/InteractsWithSwooleTable.php',
'think\\swoole\\concerns\\InteractsWithWebsocket' => $vendorDir . '/topthink/think-swoole/src/concerns/InteractsWithWebsocket.php',
'think\\swoole\\concerns\\ModifyProperty' => $vendorDir . '/topthink/think-swoole/src/concerns/ModifyProperty.php',
'think\\swoole\\concerns\\WithApplication' => $vendorDir . '/topthink/think-swoole/src/concerns/WithApplication.php',
'think\\swoole\\contract\\ResetterInterface' => $vendorDir . '/topthink/think-swoole/src/contract/ResetterInterface.php',
'think\\swoole\\contract\\rpc\\ParserInterface' => $vendorDir . '/topthink/think-swoole/src/contract/rpc/ParserInterface.php',
'think\\swoole\\contract\\websocket\\HandlerInterface' => $vendorDir . '/topthink/think-swoole/src/contract/websocket/HandlerInterface.php',
'think\\swoole\\contract\\websocket\\ParserInterface' => $vendorDir . '/topthink/think-swoole/src/contract/websocket/ParserInterface.php',
'think\\swoole\\contract\\websocket\\RoomInterface' => $vendorDir . '/topthink/think-swoole/src/contract/websocket/RoomInterface.php',
'think\\swoole\\coroutine\\Context' => $vendorDir . '/topthink/think-swoole/src/coroutine/Context.php',
'think\\swoole\\exception\\RpcClientException' => $vendorDir . '/topthink/think-swoole/src/exception/RpcClientException.php',
'think\\swoole\\exception\\RpcResponseException' => $vendorDir . '/topthink/think-swoole/src/exception/RpcResponseException.php',
'think\\swoole\\facade\\Server' => $vendorDir . '/topthink/think-swoole/src/facade/Server.php',
'think\\swoole\\middleware\\ResetVarDumper' => $vendorDir . '/topthink/think-swoole/src/middleware/ResetVarDumper.php',
'think\\swoole\\pool\\Cache' => $vendorDir . '/topthink/think-swoole/src/pool/Cache.php',
'think\\swoole\\pool\\Client' => $vendorDir . '/topthink/think-swoole/src/pool/Client.php',
'think\\swoole\\pool\\Db' => $vendorDir . '/topthink/think-swoole/src/pool/Db.php',
'think\\swoole\\pool\\Proxy' => $vendorDir . '/topthink/think-swoole/src/pool/Proxy.php',
'think\\swoole\\pool\\proxy\\Connection' => $vendorDir . '/topthink/think-swoole/src/pool/proxy/Connection.php',
'think\\swoole\\pool\\proxy\\Store' => $vendorDir . '/topthink/think-swoole/src/pool/proxy/Store.php',
'think\\swoole\\resetters\\ClearInstances' => $vendorDir . '/topthink/think-swoole/src/resetters/ClearInstances.php',
'think\\swoole\\resetters\\ResetConfig' => $vendorDir . '/topthink/think-swoole/src/resetters/ResetConfig.php',
'think\\swoole\\resetters\\ResetEvent' => $vendorDir . '/topthink/think-swoole/src/resetters/ResetEvent.php',
'think\\swoole\\resetters\\ResetService' => $vendorDir . '/topthink/think-swoole/src/resetters/ResetService.php',
'think\\swoole\\rpc\\Error' => $vendorDir . '/topthink/think-swoole/src/rpc/Error.php',
'think\\swoole\\rpc\\File' => $vendorDir . '/topthink/think-swoole/src/rpc/File.php',
'think\\swoole\\rpc\\JsonParser' => $vendorDir . '/topthink/think-swoole/src/rpc/JsonParser.php',
'think\\swoole\\rpc\\Packer' => $vendorDir . '/topthink/think-swoole/src/rpc/Packer.php',
'think\\swoole\\rpc\\Protocol' => $vendorDir . '/topthink/think-swoole/src/rpc/Protocol.php',
'think\\swoole\\rpc\\client\\Connector' => $vendorDir . '/topthink/think-swoole/src/rpc/client/Connector.php',
'think\\swoole\\rpc\\client\\Gateway' => $vendorDir . '/topthink/think-swoole/src/rpc/client/Gateway.php',
'think\\swoole\\rpc\\client\\Proxy' => $vendorDir . '/topthink/think-swoole/src/rpc/client/Proxy.php',
'think\\swoole\\rpc\\server\\Channel' => $vendorDir . '/topthink/think-swoole/src/rpc/server/Channel.php',
'think\\swoole\\rpc\\server\\Dispatcher' => $vendorDir . '/topthink/think-swoole/src/rpc/server/Dispatcher.php',
'think\\swoole\\rpc\\server\\channel\\Buffer' => $vendorDir . '/topthink/think-swoole/src/rpc/server/channel/Buffer.php',
'think\\swoole\\rpc\\server\\channel\\File' => $vendorDir . '/topthink/think-swoole/src/rpc/server/channel/File.php',
'think\\swoole\\websocket\\Pusher' => $vendorDir . '/topthink/think-swoole/src/websocket/Pusher.php',
'think\\swoole\\websocket\\Room' => $vendorDir . '/topthink/think-swoole/src/websocket/Room.php',
'think\\swoole\\websocket\\SimpleParser' => $vendorDir . '/topthink/think-swoole/src/websocket/SimpleParser.php',
'think\\swoole\\websocket\\middleware\\SessionInit' => $vendorDir . '/topthink/think-swoole/src/websocket/middleware/SessionInit.php',
'think\\swoole\\websocket\\room\\Redis' => $vendorDir . '/topthink/think-swoole/src/websocket/room/Redis.php',
'think\\swoole\\websocket\\room\\Table' => $vendorDir . '/topthink/think-swoole/src/websocket/room/Table.php',
'think\\swoole\\websocket\\socketio\\Controller' => $vendorDir . '/topthink/think-swoole/src/websocket/socketio/Controller.php',
'think\\swoole\\websocket\\socketio\\Handler' => $vendorDir . '/topthink/think-swoole/src/websocket/socketio/Handler.php',
'think\\swoole\\websocket\\socketio\\Packet' => $vendorDir . '/topthink/think-swoole/src/websocket/socketio/Packet.php',
'think\\swoole\\websocket\\socketio\\Parser' => $vendorDir . '/topthink/think-swoole/src/websocket/socketio/Parser.php',
'think\\template\\TagLib' => $vendorDir . '/topthink/think-template/src/template/TagLib.php',
'think\\template\\driver\\File' => $vendorDir . '/topthink/think-template/src/template/driver/File.php',
'think\\template\\exception\\TemplateNotFoundException' => $vendorDir . '/topthink/think-template/src/template/exception/TemplateNotFoundException.php',
'think\\template\\taglib\\Cx' => $vendorDir . '/topthink/think-template/src/template/taglib/Cx.php',
'think\\trace\\Console' => $vendorDir . '/topthink/think-trace/src/Console.php',
'think\\trace\\Html' => $vendorDir . '/topthink/think-trace/src/Html.php',
'think\\trace\\Service' => $vendorDir . '/topthink/think-trace/src/Service.php',
'think\\trace\\TraceDebug' => $vendorDir . '/topthink/think-trace/src/TraceDebug.php',
'think\\validate\\ValidateRule' => $vendorDir . '/topthink/framework/src/think/validate/ValidateRule.php',
'think\\view\\driver\\Php' => $vendorDir . '/topthink/framework/src/think/view/driver/Php.php',
'think\\view\\driver\\Think' => $vendorDir . '/topthink/think-view/src/Think.php',
);
-16
View File
@@ -1,16 +0,0 @@
<?php
// autoload_files.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'9b552a3cc426e3287cc811caefa3cf53' => $vendorDir . '/topthink/think-helper/src/helper.php',
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
'25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php',
'667aeda72477189d0494fecd327c3641' => $vendorDir . '/symfony/var-dumper/Resources/functions/dump.php',
'1cfd2761b63b0a29ed23657ea394cb2d' => $vendorDir . '/topthink/think-captcha/src/helper.php',
'af46dcea2921209ac30627b964175f13' => $vendorDir . '/topthink/think-swoole/src/helpers.php',
);
-10
View File
@@ -1,10 +0,0 @@
<?php
// autoload_namespaces.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'' => array($baseDir . '/extend'),
);
-30
View File
@@ -1,30 +0,0 @@
<?php
// autoload_psr4.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'think\\view\\driver\\' => array($vendorDir . '/topthink/think-view/src'),
'think\\trace\\' => array($vendorDir . '/topthink/think-trace/src'),
'think\\swoole\\' => array($vendorDir . '/topthink/think-swoole/src'),
'think\\captcha\\' => array($vendorDir . '/topthink/think-captcha/src'),
'think\\app\\' => array($vendorDir . '/topthink/think-multi-app/src'),
'think\\' => array($vendorDir . '/topthink/framework/src/think', $vendorDir . '/topthink/think-helper/src', $vendorDir . '/topthink/think-orm/src', $vendorDir . '/topthink/think-template/src'),
'freedom\\' => array($baseDir . '/freedom'),
'app\\' => array($baseDir . '/app'),
'Symfony\\Polyfill\\Php80\\' => array($vendorDir . '/symfony/polyfill-php80'),
'Symfony\\Polyfill\\Php72\\' => array($vendorDir . '/symfony/polyfill-php72'),
'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
'Symfony\\Component\\VarDumper\\' => array($vendorDir . '/symfony/var-dumper'),
'Symfony\\Component\\Finder\\' => array($vendorDir . '/symfony/finder'),
'Smf\\ConnectionPool\\' => array($vendorDir . '/open-smf/connection-pool/src'),
'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'),
'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
'Psr\\Container\\' => array($vendorDir . '/psr/container/src'),
'Psr\\Cache\\' => array($vendorDir . '/psr/cache/src'),
'League\\MimeTypeDetection\\' => array($vendorDir . '/league/mime-type-detection/src'),
'League\\Flysystem\\Cached\\' => array($vendorDir . '/league/flysystem-cached-adapter/src'),
'League\\Flysystem\\' => array($vendorDir . '/league/flysystem/src'),
);
-75
View File
@@ -1,75 +0,0 @@
<?php
// autoload_real.php @generated by Composer
class ComposerAutoloaderInit9947e2ce7d1a6501413c1b0d7d3973cf
{
private static $loader;
public static function loadClassLoader($class)
{
if ('Composer\Autoload\ClassLoader' === $class) {
require __DIR__ . '/ClassLoader.php';
}
}
/**
* @return \Composer\Autoload\ClassLoader
*/
public static function getLoader()
{
if (null !== self::$loader) {
return self::$loader;
}
require __DIR__ . '/platform_check.php';
spl_autoload_register(array('ComposerAutoloaderInit9947e2ce7d1a6501413c1b0d7d3973cf', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
spl_autoload_unregister(array('ComposerAutoloaderInit9947e2ce7d1a6501413c1b0d7d3973cf', 'loadClassLoader'));
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
if ($useStaticLoader) {
require __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInit9947e2ce7d1a6501413c1b0d7d3973cf::getInitializer($loader));
} else {
$map = require __DIR__ . '/autoload_namespaces.php';
foreach ($map as $namespace => $path) {
$loader->set($namespace, $path);
}
$map = require __DIR__ . '/autoload_psr4.php';
foreach ($map as $namespace => $path) {
$loader->setPsr4($namespace, $path);
}
$classMap = require __DIR__ . '/autoload_classmap.php';
if ($classMap) {
$loader->addClassMap($classMap);
}
}
$loader->register(true);
if ($useStaticLoader) {
$includeFiles = Composer\Autoload\ComposerStaticInit9947e2ce7d1a6501413c1b0d7d3973cf::$files;
} else {
$includeFiles = require __DIR__ . '/autoload_files.php';
}
foreach ($includeFiles as $fileIdentifier => $file) {
composerRequire9947e2ce7d1a6501413c1b0d7d3973cf($fileIdentifier, $file);
}
return $loader;
}
}
function composerRequire9947e2ce7d1a6501413c1b0d7d3973cf($fileIdentifier, $file)
{
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
require $file;
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
}
}
-801
View File
@@ -1,801 +0,0 @@
<?php
// autoload_static.php @generated by Composer
namespace Composer\Autoload;
class ComposerStaticInit9947e2ce7d1a6501413c1b0d7d3973cf
{
public static $files = array (
'9b552a3cc426e3287cc811caefa3cf53' => __DIR__ . '/..' . '/topthink/think-helper/src/helper.php',
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
'25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
'667aeda72477189d0494fecd327c3641' => __DIR__ . '/..' . '/symfony/var-dumper/Resources/functions/dump.php',
'1cfd2761b63b0a29ed23657ea394cb2d' => __DIR__ . '/..' . '/topthink/think-captcha/src/helper.php',
'af46dcea2921209ac30627b964175f13' => __DIR__ . '/..' . '/topthink/think-swoole/src/helpers.php',
);
public static $prefixLengthsPsr4 = array (
't' =>
array (
'think\\view\\driver\\' => 18,
'think\\trace\\' => 12,
'think\\swoole\\' => 13,
'think\\captcha\\' => 14,
'think\\app\\' => 10,
'think\\' => 6,
),
'f' =>
array (
'freedom\\' => 8,
),
'a' =>
array (
'app\\' => 4,
),
'S' =>
array (
'Symfony\\Polyfill\\Php80\\' => 23,
'Symfony\\Polyfill\\Php72\\' => 23,
'Symfony\\Polyfill\\Mbstring\\' => 26,
'Symfony\\Component\\VarDumper\\' => 28,
'Symfony\\Component\\Finder\\' => 25,
'Smf\\ConnectionPool\\' => 19,
),
'P' =>
array (
'Psr\\SimpleCache\\' => 16,
'Psr\\Log\\' => 8,
'Psr\\Container\\' => 14,
'Psr\\Cache\\' => 10,
),
'L' =>
array (
'League\\MimeTypeDetection\\' => 25,
'League\\Flysystem\\Cached\\' => 24,
'League\\Flysystem\\' => 17,
),
);
public static $prefixDirsPsr4 = array (
'think\\view\\driver\\' =>
array (
0 => __DIR__ . '/..' . '/topthink/think-view/src',
),
'think\\trace\\' =>
array (
0 => __DIR__ . '/..' . '/topthink/think-trace/src',
),
'think\\swoole\\' =>
array (
0 => __DIR__ . '/..' . '/topthink/think-swoole/src',
),
'think\\captcha\\' =>
array (
0 => __DIR__ . '/..' . '/topthink/think-captcha/src',
),
'think\\app\\' =>
array (
0 => __DIR__ . '/..' . '/topthink/think-multi-app/src',
),
'think\\' =>
array (
0 => __DIR__ . '/..' . '/topthink/framework/src/think',
1 => __DIR__ . '/..' . '/topthink/think-helper/src',
2 => __DIR__ . '/..' . '/topthink/think-orm/src',
3 => __DIR__ . '/..' . '/topthink/think-template/src',
),
'freedom\\' =>
array (
0 => __DIR__ . '/../..' . '/freedom',
),
'app\\' =>
array (
0 => __DIR__ . '/../..' . '/app',
),
'Symfony\\Polyfill\\Php80\\' =>
array (
0 => __DIR__ . '/..' . '/symfony/polyfill-php80',
),
'Symfony\\Polyfill\\Php72\\' =>
array (
0 => __DIR__ . '/..' . '/symfony/polyfill-php72',
),
'Symfony\\Polyfill\\Mbstring\\' =>
array (
0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring',
),
'Symfony\\Component\\VarDumper\\' =>
array (
0 => __DIR__ . '/..' . '/symfony/var-dumper',
),
'Symfony\\Component\\Finder\\' =>
array (
0 => __DIR__ . '/..' . '/symfony/finder',
),
'Smf\\ConnectionPool\\' =>
array (
0 => __DIR__ . '/..' . '/open-smf/connection-pool/src',
),
'Psr\\SimpleCache\\' =>
array (
0 => __DIR__ . '/..' . '/psr/simple-cache/src',
),
'Psr\\Log\\' =>
array (
0 => __DIR__ . '/..' . '/psr/log/Psr/Log',
),
'Psr\\Container\\' =>
array (
0 => __DIR__ . '/..' . '/psr/container/src',
),
'Psr\\Cache\\' =>
array (
0 => __DIR__ . '/..' . '/psr/cache/src',
),
'League\\MimeTypeDetection\\' =>
array (
0 => __DIR__ . '/..' . '/league/mime-type-detection/src',
),
'League\\Flysystem\\Cached\\' =>
array (
0 => __DIR__ . '/..' . '/league/flysystem-cached-adapter/src',
),
'League\\Flysystem\\' =>
array (
0 => __DIR__ . '/..' . '/league/flysystem/src',
),
);
public static $fallbackDirsPsr0 = array (
0 => __DIR__ . '/../..' . '/extend',
);
public static $classMap = array (
'Attribute' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
'League\\Flysystem\\AdapterInterface' => __DIR__ . '/..' . '/league/flysystem/src/AdapterInterface.php',
'League\\Flysystem\\Adapter\\AbstractAdapter' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/AbstractAdapter.php',
'League\\Flysystem\\Adapter\\AbstractFtpAdapter' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/AbstractFtpAdapter.php',
'League\\Flysystem\\Adapter\\CanOverwriteFiles' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/CanOverwriteFiles.php',
'League\\Flysystem\\Adapter\\Ftp' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Ftp.php',
'League\\Flysystem\\Adapter\\Ftpd' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Ftpd.php',
'League\\Flysystem\\Adapter\\Local' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Local.php',
'League\\Flysystem\\Adapter\\NullAdapter' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/NullAdapter.php',
'League\\Flysystem\\Adapter\\Polyfill\\NotSupportingVisibilityTrait' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Polyfill/NotSupportingVisibilityTrait.php',
'League\\Flysystem\\Adapter\\Polyfill\\StreamedCopyTrait' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Polyfill/StreamedCopyTrait.php',
'League\\Flysystem\\Adapter\\Polyfill\\StreamedReadingTrait' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Polyfill/StreamedReadingTrait.php',
'League\\Flysystem\\Adapter\\Polyfill\\StreamedTrait' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Polyfill/StreamedTrait.php',
'League\\Flysystem\\Adapter\\Polyfill\\StreamedWritingTrait' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Polyfill/StreamedWritingTrait.php',
'League\\Flysystem\\Adapter\\SynologyFtp' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/SynologyFtp.php',
'League\\Flysystem\\Cached\\CacheInterface' => __DIR__ . '/..' . '/league/flysystem-cached-adapter/src/CacheInterface.php',
'League\\Flysystem\\Cached\\CachedAdapter' => __DIR__ . '/..' . '/league/flysystem-cached-adapter/src/CachedAdapter.php',
'League\\Flysystem\\Cached\\Storage\\AbstractCache' => __DIR__ . '/..' . '/league/flysystem-cached-adapter/src/Storage/AbstractCache.php',
'League\\Flysystem\\Cached\\Storage\\Adapter' => __DIR__ . '/..' . '/league/flysystem-cached-adapter/src/Storage/Adapter.php',
'League\\Flysystem\\Cached\\Storage\\Memcached' => __DIR__ . '/..' . '/league/flysystem-cached-adapter/src/Storage/Memcached.php',
'League\\Flysystem\\Cached\\Storage\\Memory' => __DIR__ . '/..' . '/league/flysystem-cached-adapter/src/Storage/Memory.php',
'League\\Flysystem\\Cached\\Storage\\Noop' => __DIR__ . '/..' . '/league/flysystem-cached-adapter/src/Storage/Noop.php',
'League\\Flysystem\\Cached\\Storage\\PhpRedis' => __DIR__ . '/..' . '/league/flysystem-cached-adapter/src/Storage/PhpRedis.php',
'League\\Flysystem\\Cached\\Storage\\Predis' => __DIR__ . '/..' . '/league/flysystem-cached-adapter/src/Storage/Predis.php',
'League\\Flysystem\\Cached\\Storage\\Psr6Cache' => __DIR__ . '/..' . '/league/flysystem-cached-adapter/src/Storage/Psr6Cache.php',
'League\\Flysystem\\Cached\\Storage\\Stash' => __DIR__ . '/..' . '/league/flysystem-cached-adapter/src/Storage/Stash.php',
'League\\Flysystem\\Config' => __DIR__ . '/..' . '/league/flysystem/src/Config.php',
'League\\Flysystem\\ConfigAwareTrait' => __DIR__ . '/..' . '/league/flysystem/src/ConfigAwareTrait.php',
'League\\Flysystem\\ConnectionErrorException' => __DIR__ . '/..' . '/league/flysystem/src/ConnectionErrorException.php',
'League\\Flysystem\\ConnectionRuntimeException' => __DIR__ . '/..' . '/league/flysystem/src/ConnectionRuntimeException.php',
'League\\Flysystem\\Directory' => __DIR__ . '/..' . '/league/flysystem/src/Directory.php',
'League\\Flysystem\\Exception' => __DIR__ . '/..' . '/league/flysystem/src/Exception.php',
'League\\Flysystem\\File' => __DIR__ . '/..' . '/league/flysystem/src/File.php',
'League\\Flysystem\\FileExistsException' => __DIR__ . '/..' . '/league/flysystem/src/FileExistsException.php',
'League\\Flysystem\\FileNotFoundException' => __DIR__ . '/..' . '/league/flysystem/src/FileNotFoundException.php',
'League\\Flysystem\\Filesystem' => __DIR__ . '/..' . '/league/flysystem/src/Filesystem.php',
'League\\Flysystem\\FilesystemException' => __DIR__ . '/..' . '/league/flysystem/src/FilesystemException.php',
'League\\Flysystem\\FilesystemInterface' => __DIR__ . '/..' . '/league/flysystem/src/FilesystemInterface.php',
'League\\Flysystem\\FilesystemNotFoundException' => __DIR__ . '/..' . '/league/flysystem/src/FilesystemNotFoundException.php',
'League\\Flysystem\\Handler' => __DIR__ . '/..' . '/league/flysystem/src/Handler.php',
'League\\Flysystem\\InvalidRootException' => __DIR__ . '/..' . '/league/flysystem/src/InvalidRootException.php',
'League\\Flysystem\\MountManager' => __DIR__ . '/..' . '/league/flysystem/src/MountManager.php',
'League\\Flysystem\\NotSupportedException' => __DIR__ . '/..' . '/league/flysystem/src/NotSupportedException.php',
'League\\Flysystem\\PluginInterface' => __DIR__ . '/..' . '/league/flysystem/src/PluginInterface.php',
'League\\Flysystem\\Plugin\\AbstractPlugin' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/AbstractPlugin.php',
'League\\Flysystem\\Plugin\\EmptyDir' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/EmptyDir.php',
'League\\Flysystem\\Plugin\\ForcedCopy' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/ForcedCopy.php',
'League\\Flysystem\\Plugin\\ForcedRename' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/ForcedRename.php',
'League\\Flysystem\\Plugin\\GetWithMetadata' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/GetWithMetadata.php',
'League\\Flysystem\\Plugin\\ListFiles' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/ListFiles.php',
'League\\Flysystem\\Plugin\\ListPaths' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/ListPaths.php',
'League\\Flysystem\\Plugin\\ListWith' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/ListWith.php',
'League\\Flysystem\\Plugin\\PluggableTrait' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/PluggableTrait.php',
'League\\Flysystem\\Plugin\\PluginNotFoundException' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/PluginNotFoundException.php',
'League\\Flysystem\\ReadInterface' => __DIR__ . '/..' . '/league/flysystem/src/ReadInterface.php',
'League\\Flysystem\\RootViolationException' => __DIR__ . '/..' . '/league/flysystem/src/RootViolationException.php',
'League\\Flysystem\\SafeStorage' => __DIR__ . '/..' . '/league/flysystem/src/SafeStorage.php',
'League\\Flysystem\\UnreadableFileException' => __DIR__ . '/..' . '/league/flysystem/src/UnreadableFileException.php',
'League\\Flysystem\\Util' => __DIR__ . '/..' . '/league/flysystem/src/Util.php',
'League\\Flysystem\\Util\\ContentListingFormatter' => __DIR__ . '/..' . '/league/flysystem/src/Util/ContentListingFormatter.php',
'League\\Flysystem\\Util\\MimeType' => __DIR__ . '/..' . '/league/flysystem/src/Util/MimeType.php',
'League\\Flysystem\\Util\\StreamHasher' => __DIR__ . '/..' . '/league/flysystem/src/Util/StreamHasher.php',
'League\\MimeTypeDetection\\EmptyExtensionToMimeTypeMap' => __DIR__ . '/..' . '/league/mime-type-detection/src/EmptyExtensionToMimeTypeMap.php',
'League\\MimeTypeDetection\\ExtensionMimeTypeDetector' => __DIR__ . '/..' . '/league/mime-type-detection/src/ExtensionMimeTypeDetector.php',
'League\\MimeTypeDetection\\ExtensionToMimeTypeMap' => __DIR__ . '/..' . '/league/mime-type-detection/src/ExtensionToMimeTypeMap.php',
'League\\MimeTypeDetection\\FinfoMimeTypeDetector' => __DIR__ . '/..' . '/league/mime-type-detection/src/FinfoMimeTypeDetector.php',
'League\\MimeTypeDetection\\GeneratedExtensionToMimeTypeMap' => __DIR__ . '/..' . '/league/mime-type-detection/src/GeneratedExtensionToMimeTypeMap.php',
'League\\MimeTypeDetection\\MimeTypeDetector' => __DIR__ . '/..' . '/league/mime-type-detection/src/MimeTypeDetector.php',
'Nette\\ArgumentOutOfRangeException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php',
'Nette\\DeprecatedException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php',
'Nette\\DirectoryNotFoundException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php',
'Nette\\FileNotFoundException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php',
'Nette\\IOException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php',
'Nette\\InvalidArgumentException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php',
'Nette\\InvalidStateException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php',
'Nette\\Iterators\\CachingIterator' => __DIR__ . '/..' . '/nette/utils/src/Iterators/CachingIterator.php',
'Nette\\Iterators\\Mapper' => __DIR__ . '/..' . '/nette/utils/src/Iterators/Mapper.php',
'Nette\\Localization\\ITranslator' => __DIR__ . '/..' . '/nette/utils/src/Utils/ITranslator.php',
'Nette\\MemberAccessException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php',
'Nette\\NotImplementedException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php',
'Nette\\NotSupportedException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php',
'Nette\\OutOfRangeException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php',
'Nette\\PhpGenerator\\ClassType' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/ClassType.php',
'Nette\\PhpGenerator\\Closure' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Closure.php',
'Nette\\PhpGenerator\\Constant' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Constant.php',
'Nette\\PhpGenerator\\Dumper' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Dumper.php',
'Nette\\PhpGenerator\\Factory' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Factory.php',
'Nette\\PhpGenerator\\GlobalFunction' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/GlobalFunction.php',
'Nette\\PhpGenerator\\Helpers' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Helpers.php',
'Nette\\PhpGenerator\\Literal' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Literal.php',
'Nette\\PhpGenerator\\Method' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Method.php',
'Nette\\PhpGenerator\\Parameter' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Parameter.php',
'Nette\\PhpGenerator\\PhpFile' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/PhpFile.php',
'Nette\\PhpGenerator\\PhpLiteral' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/PhpLiteral.php',
'Nette\\PhpGenerator\\PhpNamespace' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/PhpNamespace.php',
'Nette\\PhpGenerator\\Printer' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Printer.php',
'Nette\\PhpGenerator\\Property' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Property.php',
'Nette\\PhpGenerator\\PsrPrinter' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/PsrPrinter.php',
'Nette\\PhpGenerator\\Traits\\CommentAware' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Traits/CommentAware.php',
'Nette\\PhpGenerator\\Traits\\FunctionLike' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Traits/FunctionLike.php',
'Nette\\PhpGenerator\\Traits\\NameAware' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Traits/NameAware.php',
'Nette\\PhpGenerator\\Traits\\VisibilityAware' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Traits/VisibilityAware.php',
'Nette\\PhpGenerator\\Type' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Type.php',
'Nette\\SmartObject' => __DIR__ . '/..' . '/nette/utils/src/Utils/SmartObject.php',
'Nette\\StaticClass' => __DIR__ . '/..' . '/nette/utils/src/Utils/StaticClass.php',
'Nette\\UnexpectedValueException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php',
'Nette\\Utils\\ArrayHash' => __DIR__ . '/..' . '/nette/utils/src/Utils/ArrayHash.php',
'Nette\\Utils\\ArrayList' => __DIR__ . '/..' . '/nette/utils/src/Utils/ArrayList.php',
'Nette\\Utils\\Arrays' => __DIR__ . '/..' . '/nette/utils/src/Utils/Arrays.php',
'Nette\\Utils\\AssertionException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php',
'Nette\\Utils\\Callback' => __DIR__ . '/..' . '/nette/utils/src/Utils/Callback.php',
'Nette\\Utils\\DateTime' => __DIR__ . '/..' . '/nette/utils/src/Utils/DateTime.php',
'Nette\\Utils\\FileSystem' => __DIR__ . '/..' . '/nette/utils/src/Utils/FileSystem.php',
'Nette\\Utils\\Helpers' => __DIR__ . '/..' . '/nette/utils/src/Utils/Helpers.php',
'Nette\\Utils\\Html' => __DIR__ . '/..' . '/nette/utils/src/Utils/Html.php',
'Nette\\Utils\\IHtmlString' => __DIR__ . '/..' . '/nette/utils/src/Utils/IHtmlString.php',
'Nette\\Utils\\Image' => __DIR__ . '/..' . '/nette/utils/src/Utils/Image.php',
'Nette\\Utils\\ImageException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php',
'Nette\\Utils\\Json' => __DIR__ . '/..' . '/nette/utils/src/Utils/Json.php',
'Nette\\Utils\\JsonException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php',
'Nette\\Utils\\ObjectHelpers' => __DIR__ . '/..' . '/nette/utils/src/Utils/ObjectHelpers.php',
'Nette\\Utils\\ObjectMixin' => __DIR__ . '/..' . '/nette/utils/src/Utils/ObjectMixin.php',
'Nette\\Utils\\Paginator' => __DIR__ . '/..' . '/nette/utils/src/Utils/Paginator.php',
'Nette\\Utils\\Random' => __DIR__ . '/..' . '/nette/utils/src/Utils/Random.php',
'Nette\\Utils\\Reflection' => __DIR__ . '/..' . '/nette/utils/src/Utils/Reflection.php',
'Nette\\Utils\\RegexpException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php',
'Nette\\Utils\\Strings' => __DIR__ . '/..' . '/nette/utils/src/Utils/Strings.php',
'Nette\\Utils\\UnknownImageFileException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php',
'Nette\\Utils\\Validators' => __DIR__ . '/..' . '/nette/utils/src/Utils/Validators.php',
'Psr\\Cache\\CacheException' => __DIR__ . '/..' . '/psr/cache/src/CacheException.php',
'Psr\\Cache\\CacheItemInterface' => __DIR__ . '/..' . '/psr/cache/src/CacheItemInterface.php',
'Psr\\Cache\\CacheItemPoolInterface' => __DIR__ . '/..' . '/psr/cache/src/CacheItemPoolInterface.php',
'Psr\\Cache\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/cache/src/InvalidArgumentException.php',
'Psr\\Container\\ContainerExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerExceptionInterface.php',
'Psr\\Container\\ContainerInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerInterface.php',
'Psr\\Container\\NotFoundExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/NotFoundExceptionInterface.php',
'Psr\\Log\\AbstractLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/AbstractLogger.php',
'Psr\\Log\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/log/Psr/Log/InvalidArgumentException.php',
'Psr\\Log\\LogLevel' => __DIR__ . '/..' . '/psr/log/Psr/Log/LogLevel.php',
'Psr\\Log\\LoggerAwareInterface' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerAwareInterface.php',
'Psr\\Log\\LoggerAwareTrait' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerAwareTrait.php',
'Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerInterface.php',
'Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerTrait.php',
'Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/NullLogger.php',
'Psr\\Log\\Test\\DummyTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/DummyTest.php',
'Psr\\Log\\Test\\LoggerInterfaceTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
'Psr\\Log\\Test\\TestLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/TestLogger.php',
'Psr\\SimpleCache\\CacheException' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheException.php',
'Psr\\SimpleCache\\CacheInterface' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheInterface.php',
'Psr\\SimpleCache\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/simple-cache/src/InvalidArgumentException.php',
'Smf\\ConnectionPool\\BorrowConnectionTimeoutException' => __DIR__ . '/..' . '/open-smf/connection-pool/src/BorrowConnectionTimeoutException.php',
'Smf\\ConnectionPool\\ConnectionPool' => __DIR__ . '/..' . '/open-smf/connection-pool/src/ConnectionPool.php',
'Smf\\ConnectionPool\\ConnectionPoolInterface' => __DIR__ . '/..' . '/open-smf/connection-pool/src/ConnectionPoolInterface.php',
'Smf\\ConnectionPool\\ConnectionPoolTrait' => __DIR__ . '/..' . '/open-smf/connection-pool/src/ConnectionPoolTrait.php',
'Smf\\ConnectionPool\\Connectors\\ConnectorInterface' => __DIR__ . '/..' . '/open-smf/connection-pool/src/Connectors/ConnectorInterface.php',
'Smf\\ConnectionPool\\Connectors\\CoroutineMySQLConnector' => __DIR__ . '/..' . '/open-smf/connection-pool/src/Connectors/CoroutineMySQLConnector.php',
'Smf\\ConnectionPool\\Connectors\\CoroutinePostgreSQLConnector' => __DIR__ . '/..' . '/open-smf/connection-pool/src/Connectors/CoroutinePostgreSQLConnector.php',
'Smf\\ConnectionPool\\Connectors\\CoroutineRedisConnector' => __DIR__ . '/..' . '/open-smf/connection-pool/src/Connectors/CoroutineRedisConnector.php',
'Smf\\ConnectionPool\\Connectors\\PDOConnector' => __DIR__ . '/..' . '/open-smf/connection-pool/src/Connectors/PDOConnector.php',
'Smf\\ConnectionPool\\Connectors\\PhpRedisConnector' => __DIR__ . '/..' . '/open-smf/connection-pool/src/Connectors/PhpRedisConnector.php',
'Stringable' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Stringable.php',
'Symfony\\Component\\Finder\\Comparator\\Comparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/Comparator.php',
'Symfony\\Component\\Finder\\Comparator\\DateComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/DateComparator.php',
'Symfony\\Component\\Finder\\Comparator\\NumberComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/NumberComparator.php',
'Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => __DIR__ . '/..' . '/symfony/finder/Exception/AccessDeniedException.php',
'Symfony\\Component\\Finder\\Exception\\DirectoryNotFoundException' => __DIR__ . '/..' . '/symfony/finder/Exception/DirectoryNotFoundException.php',
'Symfony\\Component\\Finder\\Finder' => __DIR__ . '/..' . '/symfony/finder/Finder.php',
'Symfony\\Component\\Finder\\Gitignore' => __DIR__ . '/..' . '/symfony/finder/Gitignore.php',
'Symfony\\Component\\Finder\\Glob' => __DIR__ . '/..' . '/symfony/finder/Glob.php',
'Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/CustomFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\DateRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DateRangeFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\DepthRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DepthRangeFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\ExcludeDirectoryFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FileTypeFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilecontentFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilenameFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/PathFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php',
'Symfony\\Component\\Finder\\Iterator\\SizeRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SizeRangeFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\SortableIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SortableIterator.php',
'Symfony\\Component\\Finder\\SplFileInfo' => __DIR__ . '/..' . '/symfony/finder/SplFileInfo.php',
'Symfony\\Component\\VarDumper\\Caster\\AmqpCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/AmqpCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\ArgsStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ArgsStub.php',
'Symfony\\Component\\VarDumper\\Caster\\Caster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/Caster.php',
'Symfony\\Component\\VarDumper\\Caster\\ClassStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ClassStub.php',
'Symfony\\Component\\VarDumper\\Caster\\ConstStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ConstStub.php',
'Symfony\\Component\\VarDumper\\Caster\\CutArrayStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/CutArrayStub.php',
'Symfony\\Component\\VarDumper\\Caster\\CutStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/CutStub.php',
'Symfony\\Component\\VarDumper\\Caster\\DOMCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/DOMCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\DateCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/DateCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\DoctrineCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/DoctrineCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\DsCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/DsCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\DsPairStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/DsPairStub.php',
'Symfony\\Component\\VarDumper\\Caster\\EnumStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/EnumStub.php',
'Symfony\\Component\\VarDumper\\Caster\\ExceptionCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ExceptionCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\FrameStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/FrameStub.php',
'Symfony\\Component\\VarDumper\\Caster\\GmpCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/GmpCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\ImagineCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ImagineCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\ImgStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ImgStub.php',
'Symfony\\Component\\VarDumper\\Caster\\IntlCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/IntlCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\LinkStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/LinkStub.php',
'Symfony\\Component\\VarDumper\\Caster\\MemcachedCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/MemcachedCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\PdoCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/PdoCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\PgSqlCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/PgSqlCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\ProxyManagerCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ProxyManagerCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\RedisCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/RedisCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\ReflectionCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ReflectionCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\ResourceCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ResourceCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\SplCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/SplCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\StubCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/StubCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\SymfonyCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/SymfonyCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\TraceStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/TraceStub.php',
'Symfony\\Component\\VarDumper\\Caster\\UuidCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/UuidCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\XmlReaderCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/XmlReaderCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\XmlResourceCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/XmlResourceCaster.php',
'Symfony\\Component\\VarDumper\\Cloner\\AbstractCloner' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/AbstractCloner.php',
'Symfony\\Component\\VarDumper\\Cloner\\ClonerInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/ClonerInterface.php',
'Symfony\\Component\\VarDumper\\Cloner\\Cursor' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/Cursor.php',
'Symfony\\Component\\VarDumper\\Cloner\\Data' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/Data.php',
'Symfony\\Component\\VarDumper\\Cloner\\DumperInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/DumperInterface.php',
'Symfony\\Component\\VarDumper\\Cloner\\Stub' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/Stub.php',
'Symfony\\Component\\VarDumper\\Cloner\\VarCloner' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/VarCloner.php',
'Symfony\\Component\\VarDumper\\Command\\Descriptor\\CliDescriptor' => __DIR__ . '/..' . '/symfony/var-dumper/Command/Descriptor/CliDescriptor.php',
'Symfony\\Component\\VarDumper\\Command\\Descriptor\\DumpDescriptorInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Command/Descriptor/DumpDescriptorInterface.php',
'Symfony\\Component\\VarDumper\\Command\\Descriptor\\HtmlDescriptor' => __DIR__ . '/..' . '/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php',
'Symfony\\Component\\VarDumper\\Command\\ServerDumpCommand' => __DIR__ . '/..' . '/symfony/var-dumper/Command/ServerDumpCommand.php',
'Symfony\\Component\\VarDumper\\Dumper\\AbstractDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/AbstractDumper.php',
'Symfony\\Component\\VarDumper\\Dumper\\CliDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/CliDumper.php',
'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\CliContextProvider' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php',
'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\ContextProviderInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php',
'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\RequestContextProvider' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php',
'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\SourceContextProvider' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php',
'Symfony\\Component\\VarDumper\\Dumper\\ContextualizedDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ContextualizedDumper.php',
'Symfony\\Component\\VarDumper\\Dumper\\DataDumperInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/DataDumperInterface.php',
'Symfony\\Component\\VarDumper\\Dumper\\HtmlDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/HtmlDumper.php',
'Symfony\\Component\\VarDumper\\Dumper\\ServerDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ServerDumper.php',
'Symfony\\Component\\VarDumper\\Exception\\ThrowingCasterException' => __DIR__ . '/..' . '/symfony/var-dumper/Exception/ThrowingCasterException.php',
'Symfony\\Component\\VarDumper\\Server\\Connection' => __DIR__ . '/..' . '/symfony/var-dumper/Server/Connection.php',
'Symfony\\Component\\VarDumper\\Server\\DumpServer' => __DIR__ . '/..' . '/symfony/var-dumper/Server/DumpServer.php',
'Symfony\\Component\\VarDumper\\Test\\VarDumperTestTrait' => __DIR__ . '/..' . '/symfony/var-dumper/Test/VarDumperTestTrait.php',
'Symfony\\Component\\VarDumper\\VarDumper' => __DIR__ . '/..' . '/symfony/var-dumper/VarDumper.php',
'Symfony\\Polyfill\\Mbstring\\Mbstring' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/Mbstring.php',
'Symfony\\Polyfill\\Php72\\Php72' => __DIR__ . '/..' . '/symfony/polyfill-php72/Php72.php',
'Symfony\\Polyfill\\Php80\\Php80' => __DIR__ . '/..' . '/symfony/polyfill-php80/Php80.php',
'UnhandledMatchError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php',
'ValueError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/ValueError.php',
'app\\AppService' => __DIR__ . '/../..' . '/app/AppService.php',
'app\\ExceptionHandle' => __DIR__ . '/../..' . '/app/ExceptionHandle.php',
'app\\Request' => __DIR__ . '/../..' . '/app/Request.php',
'app\\handle\\controller\\Common' => __DIR__ . '/../..' . '/app/handle/controller/Common.php',
'app\\handle\\controller\\Index' => __DIR__ . '/../..' . '/app/handle/controller/Index.php',
'app\\handle\\controller\\Login' => __DIR__ . '/../..' . '/app/handle/controller/Login.php',
'app\\handle\\controller\\Scan' => __DIR__ . '/../..' . '/app/handle/controller/Scan.php',
'app\\index\\controller\\Common' => __DIR__ . '/../..' . '/app/index/controller/Common.php',
'app\\index\\controller\\Index' => __DIR__ . '/../..' . '/app/index/controller/Index.php',
'app\\index\\controller\\Login' => __DIR__ . '/../..' . '/app/index/controller/Login.php',
'app\\index\\middleware\\checkLogin' => __DIR__ . '/../..' . '/app/index/middleware/checkLogin.php',
'app\\listener\\GetState' => __DIR__ . '/../..' . '/app/listener/GetState.php',
'app\\listener\\WsClose' => __DIR__ . '/../..' . '/app/listener/WsClose.php',
'app\\listener\\WsConnect' => __DIR__ . '/../..' . '/app/listener/WsConnect.php',
'app\\listener\\scan\\Baccarat' => __DIR__ . '/../..' . '/app/listener/scan/Baccarat.php',
'app\\listener\\scan\\Dt' => __DIR__ . '/../..' . '/app/listener/scan/Dt.php',
'app\\listener\\scan\\Nn' => __DIR__ . '/../..' . '/app/listener/scan/Nn.php',
'app\\listener\\scan\\Tc' => __DIR__ . '/../..' . '/app/listener/scan/Tc.php',
'app\\listener\\space\\ChangeBoot' => __DIR__ . '/../..' . '/app/listener/space/ChangeBoot.php',
'app\\listener\\space\\EndBet' => __DIR__ . '/../..' . '/app/listener/space/EndBet.php',
'app\\listener\\space\\EndRob' => __DIR__ . '/../..' . '/app/listener/space/EndRob.php',
'app\\listener\\space\\OpeningBaccarat' => __DIR__ . '/../..' . '/app/listener/space/OpeningBaccarat.php',
'app\\listener\\space\\OpeningDt' => __DIR__ . '/../..' . '/app/listener/space/OpeningDt.php',
'app\\listener\\space\\OpeningNn' => __DIR__ . '/../..' . '/app/listener/space/OpeningNn.php',
'app\\listener\\space\\OpeningTc' => __DIR__ . '/../..' . '/app/listener/space/OpeningTc.php',
'app\\listener\\space\\ResetBoot' => __DIR__ . '/../..' . '/app/listener/space/ResetBoot.php',
'app\\listener\\space\\ResetNumberTab' => __DIR__ . '/../..' . '/app/listener/space/ResetNumberTab.php',
'app\\listener\\space\\StartBet' => __DIR__ . '/../..' . '/app/listener/space/StartBet.php',
'app\\listener\\space\\StartRob' => __DIR__ . '/../..' . '/app/listener/space/StartRob.php',
'app\\listener\\user\\CancelBet' => __DIR__ . '/../..' . '/app/listener/user/CancelBet.php',
'app\\listener\\user\\ToBet' => __DIR__ . '/../..' . '/app/listener/user/ToBet.php',
'app\\listener\\user\\ToRob' => __DIR__ . '/../..' . '/app/listener/user/ToRob.php',
'app\\middleware\\checkLogin' => __DIR__ . '/../..' . '/app/middleware/checkLogin.php',
'app\\models\\bet\\Bet' => __DIR__ . '/../..' . '/app/models/bet/Bet.php',
'app\\models\\bet\\Cs' => __DIR__ . '/../..' . '/app/models/bet/Cs.php',
'app\\models\\bet\\Xima' => __DIR__ . '/../..' . '/app/models/bet/Xima.php',
'app\\models\\process\\Boot' => __DIR__ . '/../..' . '/app/models/process/Boot.php',
'app\\models\\process\\NumberTab' => __DIR__ . '/../..' . '/app/models/process/NumberTab.php',
'app\\models\\process\\RetreatedLog' => __DIR__ . '/../..' . '/app/models/process/RetreatedLog.php',
'app\\models\\process\\Sumday' => __DIR__ . '/../..' . '/app/models/process/Sumday.php',
'app\\models\\process\\WaybillRemind' => __DIR__ . '/../..' . '/app/models/process/WaybillRemind.php',
'app\\models\\table\\ScanAccount' => __DIR__ . '/../..' . '/app/models/table/ScanAccount.php',
'app\\models\\table\\Table' => __DIR__ . '/../..' . '/app/models/table/Table.php',
'app\\models\\table\\UserController' => __DIR__ . '/../..' . '/app/models/table/UserController.php',
'app\\models\\user\\User' => __DIR__ . '/../..' . '/app/models/user/User.php',
'app\\services\\bet\\CancelBetService' => __DIR__ . '/../..' . '/app/services/bet/CancelBetService.php',
'app\\services\\bet\\ToBetBaccaratService' => __DIR__ . '/../..' . '/app/services/bet/ToBetBaccaratService.php',
'app\\services\\bet\\ToBetCommonService' => __DIR__ . '/../..' . '/app/services/bet/ToBetCommonService.php',
'app\\services\\bet\\ToBetDtService' => __DIR__ . '/../..' . '/app/services/bet/ToBetDtService.php',
'app\\services\\bet\\ToBetNnService' => __DIR__ . '/../..' . '/app/services/bet/ToBetNnService.php',
'app\\services\\bet\\ToBetTcService' => __DIR__ . '/../..' . '/app/services/bet/ToBetTcService.php',
'app\\services\\bet\\ToRobService' => __DIR__ . '/../..' . '/app/services/bet/ToRobService.php',
'app\\services\\connect\\GetCardService' => __DIR__ . '/../..' . '/app/services/connect/GetCardService.php',
'app\\services\\connect\\InitTableService' => __DIR__ . '/../..' . '/app/services/connect/InitTableService.php',
'app\\services\\connect\\ScanConnectService' => __DIR__ . '/../..' . '/app/services/connect/ScanConnectService.php',
'app\\services\\connect\\SpaceConnectService' => __DIR__ . '/../..' . '/app/services/connect/SpaceConnectService.php',
'app\\services\\connect\\UserConnectService' => __DIR__ . '/../..' . '/app/services/connect/UserConnectService.php',
'app\\services\\opening\\OpeningBaccaratService' => __DIR__ . '/../..' . '/app/services/opening/OpeningBaccaratService.php',
'app\\services\\opening\\OpeningDtService' => __DIR__ . '/../..' . '/app/services/opening/OpeningDtService.php',
'app\\services\\opening\\OpeningNnService' => __DIR__ . '/../..' . '/app/services/opening/OpeningNnService.php',
'app\\services\\opening\\OpeningTcService' => __DIR__ . '/../..' . '/app/services/opening/OpeningTcService.php',
'app\\services\\process\\CountdownService' => __DIR__ . '/../..' . '/app/services/process/CountdownService.php',
'app\\services\\process\\EndBetService' => __DIR__ . '/../..' . '/app/services/process/EndBetService.php',
'app\\services\\process\\EndRobService' => __DIR__ . '/../..' . '/app/services/process/EndRobService.php',
'app\\services\\process\\ResetNumberTabService' => __DIR__ . '/../..' . '/app/services/process/ResetNumberTabService.php',
'app\\services\\process\\StartBetService' => __DIR__ . '/../..' . '/app/services/process/StartBetService.php',
'app\\services\\process\\StartRobService' => __DIR__ . '/../..' . '/app/services/process/StartRobService.php',
'app\\services\\scan\\ScanBaccaratService' => __DIR__ . '/../..' . '/app/services/scan/ScanBaccaratService.php',
'app\\services\\scan\\ScanCommonService' => __DIR__ . '/../..' . '/app/services/scan/ScanCommonService.php',
'app\\services\\scan\\ScanDtService' => __DIR__ . '/../..' . '/app/services/scan/ScanDtService.php',
'app\\services\\scan\\ScanNnService' => __DIR__ . '/../..' . '/app/services/scan/ScanNnService.php',
'app\\services\\scan\\ScanTcService' => __DIR__ . '/../..' . '/app/services/scan/ScanTcService.php',
'freedom\\basic\\BaseModel' => __DIR__ . '/../..' . '/freedom/basic/BaseModel.php',
'freedom\\traits\\ModelTrait' => __DIR__ . '/../..' . '/freedom/traits/ModelTrait.php',
'freedom\\utils\\CardPosition' => __DIR__ . '/../..' . '/freedom/utils/CardPosition.php',
'freedom\\utils\\CardPositionNn' => __DIR__ . '/../..' . '/freedom/utils/CardPositionNn.php',
'freedom\\utils\\CardPositionTc' => __DIR__ . '/../..' . '/freedom/utils/CardPositionTc.php',
'freedom\\utils\\RedisUtil' => __DIR__ . '/../..' . '/freedom/utils/RedisUtil.php',
'freedom\\utils\\SocketSession' => __DIR__ . '/../..' . '/freedom/utils/SocketSession.php',
'freedom\\utils\\Waybill' => __DIR__ . '/../..' . '/freedom/utils/Waybill.php',
'think\\App' => __DIR__ . '/..' . '/topthink/framework/src/think/App.php',
'think\\Cache' => __DIR__ . '/..' . '/topthink/framework/src/think/Cache.php',
'think\\Collection' => __DIR__ . '/..' . '/topthink/think-helper/src/Collection.php',
'think\\Config' => __DIR__ . '/..' . '/topthink/framework/src/think/Config.php',
'think\\Console' => __DIR__ . '/..' . '/topthink/framework/src/think/Console.php',
'think\\Container' => __DIR__ . '/..' . '/topthink/framework/src/think/Container.php',
'think\\Cookie' => __DIR__ . '/..' . '/topthink/framework/src/think/Cookie.php',
'think\\Db' => __DIR__ . '/..' . '/topthink/framework/src/think/Db.php',
'think\\DbManager' => __DIR__ . '/..' . '/topthink/think-orm/src/DbManager.php',
'think\\Env' => __DIR__ . '/..' . '/topthink/framework/src/think/Env.php',
'think\\Event' => __DIR__ . '/..' . '/topthink/framework/src/think/Event.php',
'think\\Exception' => __DIR__ . '/..' . '/topthink/framework/src/think/Exception.php',
'think\\Facade' => __DIR__ . '/..' . '/topthink/framework/src/think/Facade.php',
'think\\File' => __DIR__ . '/..' . '/topthink/framework/src/think/File.php',
'think\\Filesystem' => __DIR__ . '/..' . '/topthink/framework/src/think/Filesystem.php',
'think\\Http' => __DIR__ . '/..' . '/topthink/framework/src/think/Http.php',
'think\\Lang' => __DIR__ . '/..' . '/topthink/framework/src/think/Lang.php',
'think\\Log' => __DIR__ . '/..' . '/topthink/framework/src/think/Log.php',
'think\\Manager' => __DIR__ . '/..' . '/topthink/framework/src/think/Manager.php',
'think\\Middleware' => __DIR__ . '/..' . '/topthink/framework/src/think/Middleware.php',
'think\\Model' => __DIR__ . '/..' . '/topthink/think-orm/src/Model.php',
'think\\Paginator' => __DIR__ . '/..' . '/topthink/think-orm/src/Paginator.php',
'think\\Pipeline' => __DIR__ . '/..' . '/topthink/framework/src/think/Pipeline.php',
'think\\Request' => __DIR__ . '/..' . '/topthink/framework/src/think/Request.php',
'think\\Response' => __DIR__ . '/..' . '/topthink/framework/src/think/Response.php',
'think\\Route' => __DIR__ . '/..' . '/topthink/framework/src/think/Route.php',
'think\\Service' => __DIR__ . '/..' . '/topthink/framework/src/think/Service.php',
'think\\Session' => __DIR__ . '/..' . '/topthink/framework/src/think/Session.php',
'think\\Template' => __DIR__ . '/..' . '/topthink/think-template/src/Template.php',
'think\\Validate' => __DIR__ . '/..' . '/topthink/framework/src/think/Validate.php',
'think\\View' => __DIR__ . '/..' . '/topthink/framework/src/think/View.php',
'think\\app\\MultiApp' => __DIR__ . '/..' . '/topthink/think-multi-app/src/MultiApp.php',
'think\\app\\Service' => __DIR__ . '/..' . '/topthink/think-multi-app/src/Service.php',
'think\\app\\Url' => __DIR__ . '/..' . '/topthink/think-multi-app/src/Url.php',
'think\\app\\command\\Build' => __DIR__ . '/..' . '/topthink/think-multi-app/src/command/Build.php',
'think\\app\\command\\Clear' => __DIR__ . '/..' . '/topthink/think-multi-app/src/command/Clear.php',
'think\\cache\\Driver' => __DIR__ . '/..' . '/topthink/framework/src/think/cache/Driver.php',
'think\\cache\\TagSet' => __DIR__ . '/..' . '/topthink/framework/src/think/cache/TagSet.php',
'think\\cache\\driver\\File' => __DIR__ . '/..' . '/topthink/framework/src/think/cache/driver/File.php',
'think\\cache\\driver\\Memcache' => __DIR__ . '/..' . '/topthink/framework/src/think/cache/driver/Memcache.php',
'think\\cache\\driver\\Memcached' => __DIR__ . '/..' . '/topthink/framework/src/think/cache/driver/Memcached.php',
'think\\cache\\driver\\Redis' => __DIR__ . '/..' . '/topthink/framework/src/think/cache/driver/Redis.php',
'think\\cache\\driver\\Wincache' => __DIR__ . '/..' . '/topthink/framework/src/think/cache/driver/Wincache.php',
'think\\captcha\\Captcha' => __DIR__ . '/..' . '/topthink/think-captcha/src/Captcha.php',
'think\\captcha\\CaptchaController' => __DIR__ . '/..' . '/topthink/think-captcha/src/CaptchaController.php',
'think\\captcha\\CaptchaService' => __DIR__ . '/..' . '/topthink/think-captcha/src/CaptchaService.php',
'think\\captcha\\facade\\Captcha' => __DIR__ . '/..' . '/topthink/think-captcha/src/facade/Captcha.php',
'think\\console\\Command' => __DIR__ . '/..' . '/topthink/framework/src/think/console/Command.php',
'think\\console\\Input' => __DIR__ . '/..' . '/topthink/framework/src/think/console/Input.php',
'think\\console\\Output' => __DIR__ . '/..' . '/topthink/framework/src/think/console/Output.php',
'think\\console\\Table' => __DIR__ . '/..' . '/topthink/framework/src/think/console/Table.php',
'think\\console\\command\\Clear' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/Clear.php',
'think\\console\\command\\Help' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/Help.php',
'think\\console\\command\\Lists' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/Lists.php',
'think\\console\\command\\Make' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/Make.php',
'think\\console\\command\\RouteList' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/RouteList.php',
'think\\console\\command\\RunServer' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/RunServer.php',
'think\\console\\command\\ServiceDiscover' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/ServiceDiscover.php',
'think\\console\\command\\VendorPublish' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/VendorPublish.php',
'think\\console\\command\\Version' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/Version.php',
'think\\console\\command\\make\\Command' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/make/Command.php',
'think\\console\\command\\make\\Controller' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/make/Controller.php',
'think\\console\\command\\make\\Event' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/make/Event.php',
'think\\console\\command\\make\\Listener' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/make/Listener.php',
'think\\console\\command\\make\\Middleware' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/make/Middleware.php',
'think\\console\\command\\make\\Model' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/make/Model.php',
'think\\console\\command\\make\\Service' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/make/Service.php',
'think\\console\\command\\make\\Subscribe' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/make/Subscribe.php',
'think\\console\\command\\make\\Validate' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/make/Validate.php',
'think\\console\\command\\optimize\\Route' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/optimize/Route.php',
'think\\console\\command\\optimize\\Schema' => __DIR__ . '/..' . '/topthink/framework/src/think/console/command/optimize/Schema.php',
'think\\console\\input\\Argument' => __DIR__ . '/..' . '/topthink/framework/src/think/console/input/Argument.php',
'think\\console\\input\\Definition' => __DIR__ . '/..' . '/topthink/framework/src/think/console/input/Definition.php',
'think\\console\\input\\Option' => __DIR__ . '/..' . '/topthink/framework/src/think/console/input/Option.php',
'think\\console\\output\\Ask' => __DIR__ . '/..' . '/topthink/framework/src/think/console/output/Ask.php',
'think\\console\\output\\Descriptor' => __DIR__ . '/..' . '/topthink/framework/src/think/console/output/Descriptor.php',
'think\\console\\output\\Formatter' => __DIR__ . '/..' . '/topthink/framework/src/think/console/output/Formatter.php',
'think\\console\\output\\Question' => __DIR__ . '/..' . '/topthink/framework/src/think/console/output/Question.php',
'think\\console\\output\\descriptor\\Console' => __DIR__ . '/..' . '/topthink/framework/src/think/console/output/descriptor/Console.php',
'think\\console\\output\\driver\\Buffer' => __DIR__ . '/..' . '/topthink/framework/src/think/console/output/driver/Buffer.php',
'think\\console\\output\\driver\\Console' => __DIR__ . '/..' . '/topthink/framework/src/think/console/output/driver/Console.php',
'think\\console\\output\\driver\\Nothing' => __DIR__ . '/..' . '/topthink/framework/src/think/console/output/driver/Nothing.php',
'think\\console\\output\\formatter\\Stack' => __DIR__ . '/..' . '/topthink/framework/src/think/console/output/formatter/Stack.php',
'think\\console\\output\\formatter\\Style' => __DIR__ . '/..' . '/topthink/framework/src/think/console/output/formatter/Style.php',
'think\\console\\output\\question\\Choice' => __DIR__ . '/..' . '/topthink/framework/src/think/console/output/question/Choice.php',
'think\\console\\output\\question\\Confirmation' => __DIR__ . '/..' . '/topthink/framework/src/think/console/output/question/Confirmation.php',
'think\\contract\\Arrayable' => __DIR__ . '/..' . '/topthink/think-helper/src/contract/Arrayable.php',
'think\\contract\\CacheHandlerInterface' => __DIR__ . '/..' . '/topthink/framework/src/think/contract/CacheHandlerInterface.php',
'think\\contract\\Jsonable' => __DIR__ . '/..' . '/topthink/think-helper/src/contract/Jsonable.php',
'think\\contract\\LogHandlerInterface' => __DIR__ . '/..' . '/topthink/framework/src/think/contract/LogHandlerInterface.php',
'think\\contract\\ModelRelationInterface' => __DIR__ . '/..' . '/topthink/framework/src/think/contract/ModelRelationInterface.php',
'think\\contract\\SessionHandlerInterface' => __DIR__ . '/..' . '/topthink/framework/src/think/contract/SessionHandlerInterface.php',
'think\\contract\\TemplateHandlerInterface' => __DIR__ . '/..' . '/topthink/framework/src/think/contract/TemplateHandlerInterface.php',
'think\\db\\BaseQuery' => __DIR__ . '/..' . '/topthink/think-orm/src/db/BaseQuery.php',
'think\\db\\Builder' => __DIR__ . '/..' . '/topthink/think-orm/src/db/Builder.php',
'think\\db\\CacheItem' => __DIR__ . '/..' . '/topthink/think-orm/src/db/CacheItem.php',
'think\\db\\Connection' => __DIR__ . '/..' . '/topthink/think-orm/src/db/Connection.php',
'think\\db\\ConnectionInterface' => __DIR__ . '/..' . '/topthink/think-orm/src/db/ConnectionInterface.php',
'think\\db\\Fetch' => __DIR__ . '/..' . '/topthink/think-orm/src/db/Fetch.php',
'think\\db\\Mongo' => __DIR__ . '/..' . '/topthink/think-orm/src/db/Mongo.php',
'think\\db\\PDOConnection' => __DIR__ . '/..' . '/topthink/think-orm/src/db/PDOConnection.php',
'think\\db\\Query' => __DIR__ . '/..' . '/topthink/think-orm/src/db/Query.php',
'think\\db\\Raw' => __DIR__ . '/..' . '/topthink/think-orm/src/db/Raw.php',
'think\\db\\Where' => __DIR__ . '/..' . '/topthink/think-orm/src/db/Where.php',
'think\\db\\builder\\Mongo' => __DIR__ . '/..' . '/topthink/think-orm/src/db/builder/Mongo.php',
'think\\db\\builder\\Mysql' => __DIR__ . '/..' . '/topthink/think-orm/src/db/builder/Mysql.php',
'think\\db\\builder\\Oracle' => __DIR__ . '/..' . '/topthink/think-orm/src/db/builder/Oracle.php',
'think\\db\\builder\\Pgsql' => __DIR__ . '/..' . '/topthink/think-orm/src/db/builder/Pgsql.php',
'think\\db\\builder\\Sqlite' => __DIR__ . '/..' . '/topthink/think-orm/src/db/builder/Sqlite.php',
'think\\db\\builder\\Sqlsrv' => __DIR__ . '/..' . '/topthink/think-orm/src/db/builder/Sqlsrv.php',
'think\\db\\concern\\AggregateQuery' => __DIR__ . '/..' . '/topthink/think-orm/src/db/concern/AggregateQuery.php',
'think\\db\\concern\\JoinAndViewQuery' => __DIR__ . '/..' . '/topthink/think-orm/src/db/concern/JoinAndViewQuery.php',
'think\\db\\concern\\ModelRelationQuery' => __DIR__ . '/..' . '/topthink/think-orm/src/db/concern/ModelRelationQuery.php',
'think\\db\\concern\\ParamsBind' => __DIR__ . '/..' . '/topthink/think-orm/src/db/concern/ParamsBind.php',
'think\\db\\concern\\ResultOperation' => __DIR__ . '/..' . '/topthink/think-orm/src/db/concern/ResultOperation.php',
'think\\db\\concern\\TableFieldInfo' => __DIR__ . '/..' . '/topthink/think-orm/src/db/concern/TableFieldInfo.php',
'think\\db\\concern\\TimeFieldQuery' => __DIR__ . '/..' . '/topthink/think-orm/src/db/concern/TimeFieldQuery.php',
'think\\db\\concern\\Transaction' => __DIR__ . '/..' . '/topthink/think-orm/src/db/concern/Transaction.php',
'think\\db\\concern\\WhereQuery' => __DIR__ . '/..' . '/topthink/think-orm/src/db/concern/WhereQuery.php',
'think\\db\\connector\\Mongo' => __DIR__ . '/..' . '/topthink/think-orm/src/db/connector/Mongo.php',
'think\\db\\connector\\Mysql' => __DIR__ . '/..' . '/topthink/think-orm/src/db/connector/Mysql.php',
'think\\db\\connector\\Oracle' => __DIR__ . '/..' . '/topthink/think-orm/src/db/connector/Oracle.php',
'think\\db\\connector\\Pgsql' => __DIR__ . '/..' . '/topthink/think-orm/src/db/connector/Pgsql.php',
'think\\db\\connector\\Sqlite' => __DIR__ . '/..' . '/topthink/think-orm/src/db/connector/Sqlite.php',
'think\\db\\connector\\Sqlsrv' => __DIR__ . '/..' . '/topthink/think-orm/src/db/connector/Sqlsrv.php',
'think\\db\\exception\\BindParamException' => __DIR__ . '/..' . '/topthink/think-orm/src/db/exception/BindParamException.php',
'think\\db\\exception\\DataNotFoundException' => __DIR__ . '/..' . '/topthink/think-orm/src/db/exception/DataNotFoundException.php',
'think\\db\\exception\\DbException' => __DIR__ . '/..' . '/topthink/think-orm/src/db/exception/DbException.php',
'think\\db\\exception\\InvalidArgumentException' => __DIR__ . '/..' . '/topthink/think-orm/src/db/exception/InvalidArgumentException.php',
'think\\db\\exception\\ModelEventException' => __DIR__ . '/..' . '/topthink/think-orm/src/db/exception/ModelEventException.php',
'think\\db\\exception\\ModelNotFoundException' => __DIR__ . '/..' . '/topthink/think-orm/src/db/exception/ModelNotFoundException.php',
'think\\db\\exception\\PDOException' => __DIR__ . '/..' . '/topthink/think-orm/src/db/exception/PDOException.php',
'think\\event\\AppInit' => __DIR__ . '/..' . '/topthink/framework/src/think/event/AppInit.php',
'think\\event\\HttpEnd' => __DIR__ . '/..' . '/topthink/framework/src/think/event/HttpEnd.php',
'think\\event\\HttpRun' => __DIR__ . '/..' . '/topthink/framework/src/think/event/HttpRun.php',
'think\\event\\LogWrite' => __DIR__ . '/..' . '/topthink/framework/src/think/event/LogWrite.php',
'think\\event\\RouteLoaded' => __DIR__ . '/..' . '/topthink/framework/src/think/event/RouteLoaded.php',
'think\\exception\\ClassNotFoundException' => __DIR__ . '/..' . '/topthink/framework/src/think/exception/ClassNotFoundException.php',
'think\\exception\\ErrorException' => __DIR__ . '/..' . '/topthink/framework/src/think/exception/ErrorException.php',
'think\\exception\\FileException' => __DIR__ . '/..' . '/topthink/framework/src/think/exception/FileException.php',
'think\\exception\\FuncNotFoundException' => __DIR__ . '/..' . '/topthink/framework/src/think/exception/FuncNotFoundException.php',
'think\\exception\\Handle' => __DIR__ . '/..' . '/topthink/framework/src/think/exception/Handle.php',
'think\\exception\\HttpException' => __DIR__ . '/..' . '/topthink/framework/src/think/exception/HttpException.php',
'think\\exception\\HttpResponseException' => __DIR__ . '/..' . '/topthink/framework/src/think/exception/HttpResponseException.php',
'think\\exception\\InvalidArgumentException' => __DIR__ . '/..' . '/topthink/framework/src/think/exception/InvalidArgumentException.php',
'think\\exception\\RouteNotFoundException' => __DIR__ . '/..' . '/topthink/framework/src/think/exception/RouteNotFoundException.php',
'think\\exception\\ValidateException' => __DIR__ . '/..' . '/topthink/framework/src/think/exception/ValidateException.php',
'think\\facade\\App' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/App.php',
'think\\facade\\Cache' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Cache.php',
'think\\facade\\Config' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Config.php',
'think\\facade\\Console' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Console.php',
'think\\facade\\Cookie' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Cookie.php',
'think\\facade\\Db' => __DIR__ . '/..' . '/topthink/think-orm/src/facade/Db.php',
'think\\facade\\Env' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Env.php',
'think\\facade\\Event' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Event.php',
'think\\facade\\Filesystem' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Filesystem.php',
'think\\facade\\Lang' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Lang.php',
'think\\facade\\Log' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Log.php',
'think\\facade\\Middleware' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Middleware.php',
'think\\facade\\Request' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Request.php',
'think\\facade\\Route' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Route.php',
'think\\facade\\Session' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Session.php',
'think\\facade\\Template' => __DIR__ . '/..' . '/topthink/think-template/src/facade/Template.php',
'think\\facade\\Validate' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/Validate.php',
'think\\facade\\View' => __DIR__ . '/..' . '/topthink/framework/src/think/facade/View.php',
'think\\file\\UploadedFile' => __DIR__ . '/..' . '/topthink/framework/src/think/file/UploadedFile.php',
'think\\filesystem\\CacheStore' => __DIR__ . '/..' . '/topthink/framework/src/think/filesystem/CacheStore.php',
'think\\filesystem\\Driver' => __DIR__ . '/..' . '/topthink/framework/src/think/filesystem/Driver.php',
'think\\filesystem\\driver\\Local' => __DIR__ . '/..' . '/topthink/framework/src/think/filesystem/driver/Local.php',
'think\\helper\\Arr' => __DIR__ . '/..' . '/topthink/think-helper/src/helper/Arr.php',
'think\\helper\\Str' => __DIR__ . '/..' . '/topthink/think-helper/src/helper/Str.php',
'think\\initializer\\BootService' => __DIR__ . '/..' . '/topthink/framework/src/think/initializer/BootService.php',
'think\\initializer\\Error' => __DIR__ . '/..' . '/topthink/framework/src/think/initializer/Error.php',
'think\\initializer\\RegisterService' => __DIR__ . '/..' . '/topthink/framework/src/think/initializer/RegisterService.php',
'think\\log\\Channel' => __DIR__ . '/..' . '/topthink/framework/src/think/log/Channel.php',
'think\\log\\ChannelSet' => __DIR__ . '/..' . '/topthink/framework/src/think/log/ChannelSet.php',
'think\\log\\driver\\File' => __DIR__ . '/..' . '/topthink/framework/src/think/log/driver/File.php',
'think\\log\\driver\\Socket' => __DIR__ . '/..' . '/topthink/framework/src/think/log/driver/Socket.php',
'think\\middleware\\AllowCrossDomain' => __DIR__ . '/..' . '/topthink/framework/src/think/middleware/AllowCrossDomain.php',
'think\\middleware\\CheckRequestCache' => __DIR__ . '/..' . '/topthink/framework/src/think/middleware/CheckRequestCache.php',
'think\\middleware\\FormTokenCheck' => __DIR__ . '/..' . '/topthink/framework/src/think/middleware/FormTokenCheck.php',
'think\\middleware\\LoadLangPack' => __DIR__ . '/..' . '/topthink/framework/src/think/middleware/LoadLangPack.php',
'think\\middleware\\SessionInit' => __DIR__ . '/..' . '/topthink/framework/src/think/middleware/SessionInit.php',
'think\\model\\Collection' => __DIR__ . '/..' . '/topthink/think-orm/src/model/Collection.php',
'think\\model\\Pivot' => __DIR__ . '/..' . '/topthink/think-orm/src/model/Pivot.php',
'think\\model\\Relation' => __DIR__ . '/..' . '/topthink/think-orm/src/model/Relation.php',
'think\\model\\concern\\Attribute' => __DIR__ . '/..' . '/topthink/think-orm/src/model/concern/Attribute.php',
'think\\model\\concern\\Conversion' => __DIR__ . '/..' . '/topthink/think-orm/src/model/concern/Conversion.php',
'think\\model\\concern\\ModelEvent' => __DIR__ . '/..' . '/topthink/think-orm/src/model/concern/ModelEvent.php',
'think\\model\\concern\\OptimLock' => __DIR__ . '/..' . '/topthink/think-orm/src/model/concern/OptimLock.php',
'think\\model\\concern\\RelationShip' => __DIR__ . '/..' . '/topthink/think-orm/src/model/concern/RelationShip.php',
'think\\model\\concern\\SoftDelete' => __DIR__ . '/..' . '/topthink/think-orm/src/model/concern/SoftDelete.php',
'think\\model\\concern\\TimeStamp' => __DIR__ . '/..' . '/topthink/think-orm/src/model/concern/TimeStamp.php',
'think\\model\\relation\\BelongsTo' => __DIR__ . '/..' . '/topthink/think-orm/src/model/relation/BelongsTo.php',
'think\\model\\relation\\BelongsToMany' => __DIR__ . '/..' . '/topthink/think-orm/src/model/relation/BelongsToMany.php',
'think\\model\\relation\\HasMany' => __DIR__ . '/..' . '/topthink/think-orm/src/model/relation/HasMany.php',
'think\\model\\relation\\HasManyThrough' => __DIR__ . '/..' . '/topthink/think-orm/src/model/relation/HasManyThrough.php',
'think\\model\\relation\\HasOne' => __DIR__ . '/..' . '/topthink/think-orm/src/model/relation/HasOne.php',
'think\\model\\relation\\HasOneThrough' => __DIR__ . '/..' . '/topthink/think-orm/src/model/relation/HasOneThrough.php',
'think\\model\\relation\\MorphMany' => __DIR__ . '/..' . '/topthink/think-orm/src/model/relation/MorphMany.php',
'think\\model\\relation\\MorphOne' => __DIR__ . '/..' . '/topthink/think-orm/src/model/relation/MorphOne.php',
'think\\model\\relation\\MorphTo' => __DIR__ . '/..' . '/topthink/think-orm/src/model/relation/MorphTo.php',
'think\\model\\relation\\MorphToMany' => __DIR__ . '/..' . '/topthink/think-orm/src/model/relation/MorphToMany.php',
'think\\model\\relation\\OneToOne' => __DIR__ . '/..' . '/topthink/think-orm/src/model/relation/OneToOne.php',
'think\\paginator\\driver\\Bootstrap' => __DIR__ . '/..' . '/topthink/think-orm/src/paginator/driver/Bootstrap.php',
'think\\response\\File' => __DIR__ . '/..' . '/topthink/framework/src/think/response/File.php',
'think\\response\\Html' => __DIR__ . '/..' . '/topthink/framework/src/think/response/Html.php',
'think\\response\\Json' => __DIR__ . '/..' . '/topthink/framework/src/think/response/Json.php',
'think\\response\\Jsonp' => __DIR__ . '/..' . '/topthink/framework/src/think/response/Jsonp.php',
'think\\response\\Redirect' => __DIR__ . '/..' . '/topthink/framework/src/think/response/Redirect.php',
'think\\response\\View' => __DIR__ . '/..' . '/topthink/framework/src/think/response/View.php',
'think\\response\\Xml' => __DIR__ . '/..' . '/topthink/framework/src/think/response/Xml.php',
'think\\route\\Dispatch' => __DIR__ . '/..' . '/topthink/framework/src/think/route/Dispatch.php',
'think\\route\\Domain' => __DIR__ . '/..' . '/topthink/framework/src/think/route/Domain.php',
'think\\route\\Resource' => __DIR__ . '/..' . '/topthink/framework/src/think/route/Resource.php',
'think\\route\\Rule' => __DIR__ . '/..' . '/topthink/framework/src/think/route/Rule.php',
'think\\route\\RuleGroup' => __DIR__ . '/..' . '/topthink/framework/src/think/route/RuleGroup.php',
'think\\route\\RuleItem' => __DIR__ . '/..' . '/topthink/framework/src/think/route/RuleItem.php',
'think\\route\\RuleName' => __DIR__ . '/..' . '/topthink/framework/src/think/route/RuleName.php',
'think\\route\\Url' => __DIR__ . '/..' . '/topthink/framework/src/think/route/Url.php',
'think\\route\\dispatch\\Callback' => __DIR__ . '/..' . '/topthink/framework/src/think/route/dispatch/Callback.php',
'think\\route\\dispatch\\Controller' => __DIR__ . '/..' . '/topthink/framework/src/think/route/dispatch/Controller.php',
'think\\route\\dispatch\\Url' => __DIR__ . '/..' . '/topthink/framework/src/think/route/dispatch/Url.php',
'think\\service\\ModelService' => __DIR__ . '/..' . '/topthink/framework/src/think/service/ModelService.php',
'think\\service\\PaginatorService' => __DIR__ . '/..' . '/topthink/framework/src/think/service/PaginatorService.php',
'think\\service\\ValidateService' => __DIR__ . '/..' . '/topthink/framework/src/think/service/ValidateService.php',
'think\\session\\Store' => __DIR__ . '/..' . '/topthink/framework/src/think/session/Store.php',
'think\\session\\driver\\Cache' => __DIR__ . '/..' . '/topthink/framework/src/think/session/driver/Cache.php',
'think\\session\\driver\\File' => __DIR__ . '/..' . '/topthink/framework/src/think/session/driver/File.php',
'think\\swoole\\App' => __DIR__ . '/..' . '/topthink/think-swoole/src/App.php',
'think\\swoole\\FileWatcher' => __DIR__ . '/..' . '/topthink/think-swoole/src/FileWatcher.php',
'think\\swoole\\Http' => __DIR__ . '/..' . '/topthink/think-swoole/src/Http.php',
'think\\swoole\\Manager' => __DIR__ . '/..' . '/topthink/think-swoole/src/Manager.php',
'think\\swoole\\PidManager' => __DIR__ . '/..' . '/topthink/think-swoole/src/PidManager.php',
'think\\swoole\\Pool' => __DIR__ . '/..' . '/topthink/think-swoole/src/Pool.php',
'think\\swoole\\RpcManager' => __DIR__ . '/..' . '/topthink/think-swoole/src/RpcManager.php',
'think\\swoole\\Sandbox' => __DIR__ . '/..' . '/topthink/think-swoole/src/Sandbox.php',
'think\\swoole\\Service' => __DIR__ . '/..' . '/topthink/think-swoole/src/Service.php',
'think\\swoole\\Table' => __DIR__ . '/..' . '/topthink/think-swoole/src/Table.php',
'think\\swoole\\Websocket' => __DIR__ . '/..' . '/topthink/think-swoole/src/Websocket.php',
'think\\swoole\\command\\Rpc' => __DIR__ . '/..' . '/topthink/think-swoole/src/command/Rpc.php',
'think\\swoole\\command\\RpcInterface' => __DIR__ . '/..' . '/topthink/think-swoole/src/command/RpcInterface.php',
'think\\swoole\\command\\Server' => __DIR__ . '/..' . '/topthink/think-swoole/src/command/Server.php',
'think\\swoole\\concerns\\InteractsWithHttp' => __DIR__ . '/..' . '/topthink/think-swoole/src/concerns/InteractsWithHttp.php',
'think\\swoole\\concerns\\InteractsWithPools' => __DIR__ . '/..' . '/topthink/think-swoole/src/concerns/InteractsWithPools.php',
'think\\swoole\\concerns\\InteractsWithRpcClient' => __DIR__ . '/..' . '/topthink/think-swoole/src/concerns/InteractsWithRpcClient.php',
'think\\swoole\\concerns\\InteractsWithRpcServer' => __DIR__ . '/..' . '/topthink/think-swoole/src/concerns/InteractsWithRpcServer.php',
'think\\swoole\\concerns\\InteractsWithServer' => __DIR__ . '/..' . '/topthink/think-swoole/src/concerns/InteractsWithServer.php',
'think\\swoole\\concerns\\InteractsWithSwooleTable' => __DIR__ . '/..' . '/topthink/think-swoole/src/concerns/InteractsWithSwooleTable.php',
'think\\swoole\\concerns\\InteractsWithWebsocket' => __DIR__ . '/..' . '/topthink/think-swoole/src/concerns/InteractsWithWebsocket.php',
'think\\swoole\\concerns\\ModifyProperty' => __DIR__ . '/..' . '/topthink/think-swoole/src/concerns/ModifyProperty.php',
'think\\swoole\\concerns\\WithApplication' => __DIR__ . '/..' . '/topthink/think-swoole/src/concerns/WithApplication.php',
'think\\swoole\\contract\\ResetterInterface' => __DIR__ . '/..' . '/topthink/think-swoole/src/contract/ResetterInterface.php',
'think\\swoole\\contract\\rpc\\ParserInterface' => __DIR__ . '/..' . '/topthink/think-swoole/src/contract/rpc/ParserInterface.php',
'think\\swoole\\contract\\websocket\\HandlerInterface' => __DIR__ . '/..' . '/topthink/think-swoole/src/contract/websocket/HandlerInterface.php',
'think\\swoole\\contract\\websocket\\ParserInterface' => __DIR__ . '/..' . '/topthink/think-swoole/src/contract/websocket/ParserInterface.php',
'think\\swoole\\contract\\websocket\\RoomInterface' => __DIR__ . '/..' . '/topthink/think-swoole/src/contract/websocket/RoomInterface.php',
'think\\swoole\\coroutine\\Context' => __DIR__ . '/..' . '/topthink/think-swoole/src/coroutine/Context.php',
'think\\swoole\\exception\\RpcClientException' => __DIR__ . '/..' . '/topthink/think-swoole/src/exception/RpcClientException.php',
'think\\swoole\\exception\\RpcResponseException' => __DIR__ . '/..' . '/topthink/think-swoole/src/exception/RpcResponseException.php',
'think\\swoole\\facade\\Server' => __DIR__ . '/..' . '/topthink/think-swoole/src/facade/Server.php',
'think\\swoole\\middleware\\ResetVarDumper' => __DIR__ . '/..' . '/topthink/think-swoole/src/middleware/ResetVarDumper.php',
'think\\swoole\\pool\\Cache' => __DIR__ . '/..' . '/topthink/think-swoole/src/pool/Cache.php',
'think\\swoole\\pool\\Client' => __DIR__ . '/..' . '/topthink/think-swoole/src/pool/Client.php',
'think\\swoole\\pool\\Db' => __DIR__ . '/..' . '/topthink/think-swoole/src/pool/Db.php',
'think\\swoole\\pool\\Proxy' => __DIR__ . '/..' . '/topthink/think-swoole/src/pool/Proxy.php',
'think\\swoole\\pool\\proxy\\Connection' => __DIR__ . '/..' . '/topthink/think-swoole/src/pool/proxy/Connection.php',
'think\\swoole\\pool\\proxy\\Store' => __DIR__ . '/..' . '/topthink/think-swoole/src/pool/proxy/Store.php',
'think\\swoole\\resetters\\ClearInstances' => __DIR__ . '/..' . '/topthink/think-swoole/src/resetters/ClearInstances.php',
'think\\swoole\\resetters\\ResetConfig' => __DIR__ . '/..' . '/topthink/think-swoole/src/resetters/ResetConfig.php',
'think\\swoole\\resetters\\ResetEvent' => __DIR__ . '/..' . '/topthink/think-swoole/src/resetters/ResetEvent.php',
'think\\swoole\\resetters\\ResetService' => __DIR__ . '/..' . '/topthink/think-swoole/src/resetters/ResetService.php',
'think\\swoole\\rpc\\Error' => __DIR__ . '/..' . '/topthink/think-swoole/src/rpc/Error.php',
'think\\swoole\\rpc\\File' => __DIR__ . '/..' . '/topthink/think-swoole/src/rpc/File.php',
'think\\swoole\\rpc\\JsonParser' => __DIR__ . '/..' . '/topthink/think-swoole/src/rpc/JsonParser.php',
'think\\swoole\\rpc\\Packer' => __DIR__ . '/..' . '/topthink/think-swoole/src/rpc/Packer.php',
'think\\swoole\\rpc\\Protocol' => __DIR__ . '/..' . '/topthink/think-swoole/src/rpc/Protocol.php',
'think\\swoole\\rpc\\client\\Connector' => __DIR__ . '/..' . '/topthink/think-swoole/src/rpc/client/Connector.php',
'think\\swoole\\rpc\\client\\Gateway' => __DIR__ . '/..' . '/topthink/think-swoole/src/rpc/client/Gateway.php',
'think\\swoole\\rpc\\client\\Proxy' => __DIR__ . '/..' . '/topthink/think-swoole/src/rpc/client/Proxy.php',
'think\\swoole\\rpc\\server\\Channel' => __DIR__ . '/..' . '/topthink/think-swoole/src/rpc/server/Channel.php',
'think\\swoole\\rpc\\server\\Dispatcher' => __DIR__ . '/..' . '/topthink/think-swoole/src/rpc/server/Dispatcher.php',
'think\\swoole\\rpc\\server\\channel\\Buffer' => __DIR__ . '/..' . '/topthink/think-swoole/src/rpc/server/channel/Buffer.php',
'think\\swoole\\rpc\\server\\channel\\File' => __DIR__ . '/..' . '/topthink/think-swoole/src/rpc/server/channel/File.php',
'think\\swoole\\websocket\\Pusher' => __DIR__ . '/..' . '/topthink/think-swoole/src/websocket/Pusher.php',
'think\\swoole\\websocket\\Room' => __DIR__ . '/..' . '/topthink/think-swoole/src/websocket/Room.php',
'think\\swoole\\websocket\\SimpleParser' => __DIR__ . '/..' . '/topthink/think-swoole/src/websocket/SimpleParser.php',
'think\\swoole\\websocket\\middleware\\SessionInit' => __DIR__ . '/..' . '/topthink/think-swoole/src/websocket/middleware/SessionInit.php',
'think\\swoole\\websocket\\room\\Redis' => __DIR__ . '/..' . '/topthink/think-swoole/src/websocket/room/Redis.php',
'think\\swoole\\websocket\\room\\Table' => __DIR__ . '/..' . '/topthink/think-swoole/src/websocket/room/Table.php',
'think\\swoole\\websocket\\socketio\\Controller' => __DIR__ . '/..' . '/topthink/think-swoole/src/websocket/socketio/Controller.php',
'think\\swoole\\websocket\\socketio\\Handler' => __DIR__ . '/..' . '/topthink/think-swoole/src/websocket/socketio/Handler.php',
'think\\swoole\\websocket\\socketio\\Packet' => __DIR__ . '/..' . '/topthink/think-swoole/src/websocket/socketio/Packet.php',
'think\\swoole\\websocket\\socketio\\Parser' => __DIR__ . '/..' . '/topthink/think-swoole/src/websocket/socketio/Parser.php',
'think\\template\\TagLib' => __DIR__ . '/..' . '/topthink/think-template/src/template/TagLib.php',
'think\\template\\driver\\File' => __DIR__ . '/..' . '/topthink/think-template/src/template/driver/File.php',
'think\\template\\exception\\TemplateNotFoundException' => __DIR__ . '/..' . '/topthink/think-template/src/template/exception/TemplateNotFoundException.php',
'think\\template\\taglib\\Cx' => __DIR__ . '/..' . '/topthink/think-template/src/template/taglib/Cx.php',
'think\\trace\\Console' => __DIR__ . '/..' . '/topthink/think-trace/src/Console.php',
'think\\trace\\Html' => __DIR__ . '/..' . '/topthink/think-trace/src/Html.php',
'think\\trace\\Service' => __DIR__ . '/..' . '/topthink/think-trace/src/Service.php',
'think\\trace\\TraceDebug' => __DIR__ . '/..' . '/topthink/think-trace/src/TraceDebug.php',
'think\\validate\\ValidateRule' => __DIR__ . '/..' . '/topthink/framework/src/think/validate/ValidateRule.php',
'think\\view\\driver\\Php' => __DIR__ . '/..' . '/topthink/framework/src/think/view/driver/Php.php',
'think\\view\\driver\\Think' => __DIR__ . '/..' . '/topthink/think-view/src/Think.php',
);
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInit9947e2ce7d1a6501413c1b0d7d3973cf::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInit9947e2ce7d1a6501413c1b0d7d3973cf::$prefixDirsPsr4;
$loader->fallbackDirsPsr0 = ComposerStaticInit9947e2ce7d1a6501413c1b0d7d3973cf::$fallbackDirsPsr0;
$loader->classMap = ComposerStaticInit9947e2ce7d1a6501413c1b0d7d3973cf::$classMap;
}, null, ClassLoader::class);
}
}
-1698
View File
File diff suppressed because it is too large Load Diff
-249
View File
@@ -1,249 +0,0 @@
<?php return array (
'root' =>
array (
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'aliases' =>
array (
),
'reference' => 'c9f65d5ca918842689a627444aec27e5d6aeffc5',
'name' => 'topthink/think',
),
'versions' =>
array (
'league/flysystem' =>
array (
'pretty_version' => '1.1.3',
'version' => '1.1.3.0',
'aliases' =>
array (
),
'reference' => '9be3b16c877d477357c015cec057548cf9b2a14a',
),
'league/flysystem-cached-adapter' =>
array (
'pretty_version' => '1.1.0',
'version' => '1.1.0.0',
'aliases' =>
array (
),
'reference' => 'd1925efb2207ac4be3ad0c40b8277175f99ffaff',
),
'league/mime-type-detection' =>
array (
'pretty_version' => '1.5.1',
'version' => '1.5.1.0',
'aliases' =>
array (
),
'reference' => '353f66d7555d8a90781f6f5e7091932f9a4250aa',
),
'nette/php-generator' =>
array (
'pretty_version' => 'v3.4.1',
'version' => '3.4.1.0',
'aliases' =>
array (
),
'reference' => '7051954c534cebafd650efe8b145ac75b223cb66',
),
'nette/utils' =>
array (
'pretty_version' => 'v3.1.3',
'version' => '3.1.3.0',
'aliases' =>
array (
),
'reference' => 'c09937fbb24987b2a41c6022ebe84f4f1b8eec0f',
),
'open-smf/connection-pool' =>
array (
'pretty_version' => 'v1.0.15',
'version' => '1.0.15.0',
'aliases' =>
array (
),
'reference' => 'f9289cb5ee61d3e901bc74ab745e5b2162461a1e',
),
'psr/cache' =>
array (
'pretty_version' => '1.0.1',
'version' => '1.0.1.0',
'aliases' =>
array (
),
'reference' => 'd11b50ad223250cf17b86e38383413f5a6764bf8',
),
'psr/container' =>
array (
'pretty_version' => '1.0.0',
'version' => '1.0.0.0',
'aliases' =>
array (
),
'reference' => 'b7ce3b176482dbbc1245ebf52b181af44c2cf55f',
),
'psr/log' =>
array (
'pretty_version' => '1.1.3',
'version' => '1.1.3.0',
'aliases' =>
array (
),
'reference' => '0f73288fd15629204f9d42b7055f72dacbe811fc',
),
'psr/simple-cache' =>
array (
'pretty_version' => '1.0.1',
'version' => '1.0.1.0',
'aliases' =>
array (
),
'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b',
),
'swoole/ide-helper' =>
array (
'pretty_version' => '4.5.6',
'version' => '4.5.6.0',
'aliases' =>
array (
),
'reference' => 'ab23c2c35880144a6060a3f178a68af0d0c6fc93',
),
'symfony/finder' =>
array (
'pretty_version' => 'v4.4.16',
'version' => '4.4.16.0',
'aliases' =>
array (
),
'reference' => '26f63b8d4e92f2eecd90f6791a563ebb001abe31',
),
'symfony/polyfill-mbstring' =>
array (
'pretty_version' => 'v1.20.0',
'version' => '1.20.0.0',
'aliases' =>
array (
),
'reference' => '39d483bdf39be819deabf04ec872eb0b2410b531',
),
'symfony/polyfill-php72' =>
array (
'pretty_version' => 'v1.20.0',
'version' => '1.20.0.0',
'aliases' =>
array (
),
'reference' => 'cede45fcdfabdd6043b3592e83678e42ec69e930',
),
'symfony/polyfill-php80' =>
array (
'pretty_version' => 'v1.20.0',
'version' => '1.20.0.0',
'aliases' =>
array (
),
'reference' => 'e70aa8b064c5b72d3df2abd5ab1e90464ad009de',
),
'symfony/var-dumper' =>
array (
'pretty_version' => 'v4.4.16',
'version' => '4.4.16.0',
'aliases' =>
array (
),
'reference' => '3718e18b68d955348ad860e505991802c09f5f73',
),
'topthink/framework' =>
array (
'pretty_version' => 'v6.0.5',
'version' => '6.0.5.0',
'aliases' =>
array (
),
'reference' => '85625d984f5c96699dc27d384869f206c3aec1cc',
),
'topthink/think' =>
array (
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'aliases' =>
array (
),
'reference' => 'c9f65d5ca918842689a627444aec27e5d6aeffc5',
),
'topthink/think-captcha' =>
array (
'pretty_version' => 'v3.0.3',
'version' => '3.0.3.0',
'aliases' =>
array (
),
'reference' => '1eef3717c1bcf4f5bbe2d1a1c704011d330a8b55',
),
'topthink/think-helper' =>
array (
'pretty_version' => 'v3.1.4',
'version' => '3.1.4.0',
'aliases' =>
array (
),
'reference' => 'c28d37743bda4a0455286ca85b17b5791d626e10',
),
'topthink/think-multi-app' =>
array (
'pretty_version' => 'v1.0.14',
'version' => '1.0.14.0',
'aliases' =>
array (
),
'reference' => 'ccaad7c2d33f42cb1cc2a78d6610aaec02cea4c3',
),
'topthink/think-orm' =>
array (
'pretty_version' => 'v2.0.34',
'version' => '2.0.34.0',
'aliases' =>
array (
),
'reference' => '57f9b98895b0ff4ae7b7b75e51456fd8cb8fb629',
),
'topthink/think-swoole' =>
array (
'pretty_version' => 'v3.0.9',
'version' => '3.0.9.0',
'aliases' =>
array (
),
'reference' => 'c61e95cdc0669f4fe3382e25def9ae25797c0508',
),
'topthink/think-template' =>
array (
'pretty_version' => 'v2.0.7',
'version' => '2.0.7.0',
'aliases' =>
array (
),
'reference' => 'e98bdbb4a4c94b442f17dfceba81e0134d4fbd19',
),
'topthink/think-trace' =>
array (
'pretty_version' => 'v1.4',
'version' => '1.4.0.0',
'aliases' =>
array (
),
'reference' => '9a9fa8f767b6c66c5a133ad21ca1bc96ad329444',
),
'topthink/think-view' =>
array (
'pretty_version' => 'v1.0.14',
'version' => '1.0.14.0',
'aliases' =>
array (
),
'reference' => 'edce0ae2c9551ab65f9e94a222604b0dead3576d',
),
),
);
-24
View File
@@ -1,24 +0,0 @@
<?php
// platform_check.php @generated by Composer
$issues = array();
if (!(PHP_VERSION_ID >= 70205)) {
$issues[] = 'Your Composer dependencies require a PHP version ">= 7.2.5". You are running ' . PHP_VERSION . '.';
}
$missingExtensions = array();
extension_loaded('fileinfo') || $missingExtensions[] = 'fileinfo';
extension_loaded('json') || $missingExtensions[] = 'json';
extension_loaded('mbstring') || $missingExtensions[] = 'mbstring';
extension_loaded('swoole') || $missingExtensions[] = 'swoole';
if ($missingExtensions) {
$issues[] = 'Your Composer dependencies require the following PHP extensions to be installed: ' . implode(', ', $missingExtensions);
}
if ($issues) {
echo 'Composer detected issues in your platform:' . "\n\n" . implode("\n", $issues);
exit(104);
}
-10
View File
@@ -1,10 +0,0 @@
; top-most EditorConfig file
root = true
; Unix-style newlines
[*]
end_of_line = LF
[*.php]
indent_style = space
indent_size = 4
@@ -1,4 +0,0 @@
coverage
coverage.xml
composer.lock
vendor
-7
View File
@@ -1,7 +0,0 @@
<?php
return Symfony\CS\Config\Config::create()
->level(Symfony\CS\FixerInterface::PSR2_LEVEL)
->fixers(['-yoda_conditions', 'ordered_use', 'short_array_syntax'])
->finder(Symfony\CS\Finder\DefaultFinder::create()
->in(__DIR__.'/src/'));
-34
View File
@@ -1,34 +0,0 @@
filter:
paths: [src/*]
checks:
php:
code_rating: true
remove_extra_empty_lines: true
remove_php_closing_tag: true
remove_trailing_whitespace: true
fix_use_statements:
remove_unused: true
preserve_multiple: false
preserve_blanklines: true
order_alphabetically: true
fix_php_opening_tag: true
fix_linefeed: true
fix_line_ending: true
fix_identation_4spaces: true
fix_doc_comments: true
tools:
external_code_coverage:
timeout: 900
runs: 6
php_code_coverage: false
php_code_sniffer:
config:
standard: PSR2
filter:
paths: ['src']
php_loc:
enabled: true
excluded_dirs: [vendor, spec, stubs]
php_cpd:
enabled: true
excluded_dirs: [vendor, spec, stubs]
-29
View File
@@ -1,29 +0,0 @@
language: php
php:
- 5.5
- 5.6
- 7.0
- 7.1
- 7.2
matrix:
allow_failures:
- php: 5.5
env:
- COMPOSER_OPTS=""
- COMPOSER_OPTS="--prefer-lowest"
install:
- if [[ "${TRAVIS_PHP_VERSION}" == "5.5" ]]; then composer require phpunit/phpunit:^4.8.36 phpspec/phpspec:^2 --prefer-dist --update-with-dependencies; fi
- if [[ "${TRAVIS_PHP_VERSION}" == "7.2" ]]; then composer require phpunit/phpunit:^6.0 --prefer-dist --update-with-dependencies; fi
- travis_retry composer update --prefer-dist $COMPOSER_OPTS
script:
- vendor/bin/phpspec run
- vendor/bin/phpunit
after_script:
- wget https://scrutinizer-ci.com/ocular.phar'
- php ocular.phar code-coverage:upload --format=php-clover ./clover/phpunit.xml'
-19
View File
@@ -1,19 +0,0 @@
Copyright (c) 2015 Frank de Jonge
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
@@ -1,2 +0,0 @@
*
!.gitignore
-30
View File
@@ -1,30 +0,0 @@
{
"name": "league/flysystem-cached-adapter",
"description": "An adapter decorator to enable meta-data caching.",
"autoload": {
"psr-4": {
"League\\Flysystem\\Cached\\": "src/"
}
},
"require": {
"league/flysystem": "~1.0",
"psr/cache": "^1.0.0"
},
"require-dev": {
"phpspec/phpspec": "^3.4",
"phpunit/phpunit": "^5.7",
"mockery/mockery": "~0.9",
"predis/predis": "~1.0",
"tedivm/stash": "~0.12"
},
"suggest": {
"ext-phpredis": "Pure C implemented extension for PHP"
},
"license": "MIT",
"authors": [
{
"name": "frankdejonge",
"email": "info@frenky.net"
}
]
}

Some files were not shown because too many files have changed in this diff Show More