route:cache 가 걸리면 RouteServiceProvider 가 캐시 로드로 분기해 라우트 파일이 실행되지 않는다. routes/devtools.php 는 전역 함수 5개를 정의하고 핸들러가 호출했고, boost 의 browser-logs 는 프로바이더 boot 등록분이라 setCompiledRoutes 교체로 폐기됐다. 7.0.6 의 RouteCacheHelper 가 12개 라이프사이클 지점에서 캐시를 자동 생성하면서, 확장을 한 번이라도 건드린 사이트에서 항상 재현됐다. 로직을 오토로드되는 App\Support\DevTools\* 로 옮기고 browser-logs URI 를 G7 가 직접 소유해 캐시에 함께 구워지게 했다. 게이트가 참조하던 App\Models\Setting 은 저장소에 없는 유물이라 ConfigRepositoryInterface 로 교체했다. 같은 부류의 재발은 정적 검사(route-file-local-function)로 차단하고, 재현이 in-process 로 불가능하므로 서브프로세스 하네스로 회귀를 고정했다.
20 lines
872 B
PHP
20 lines
872 B
PHP
<?php
|
|
|
|
// G7 DevTools 엔드포인트(routes/devtools.php) 응답 문구.
|
|
// 디버그 모드에서만 동작하는 개발 도구 전용이며, MCP 도구와 브라우저 클라이언트가 소비한다.
|
|
// 응답의 `status` 값은 계약이므로 번역 대상이 아니다 — 사람이 읽는 `message` 만 여기 둔다.
|
|
return [
|
|
// Access gate
|
|
'debug_disabled' => 'Debug mode is disabled.',
|
|
'connection_ok' => 'Connected',
|
|
|
|
// Dump data lookup (for MCP tools)
|
|
'no_state' => 'No state dump file found. Run G7DevTools.server.dumpState() in the browser.',
|
|
'no_actions' => 'No action history file found.',
|
|
'no_cache' => 'No cache statistics file found.',
|
|
'no_change_detection' => 'No change detection data found. Run G7DevTools.server.dumpState() in the browser.',
|
|
|
|
// Data removal
|
|
'cleared' => 'Debug data has been cleared.',
|
|
];
|