PHP 프로젝트에서 디버깅을 할 때, 특히 여러 타사 라이브러리가 통합 된 대규모 프로젝트 나 환경에서 현재 어떤 상수가 정의되어 있는지 종종 확인해야합니다. get_defined_constants ()는 시스템 기본값, 확장로드 및 사용자 정의 상수를 포함하여 모든 정의 된 상수를 얻을 수 있도록 PHP가 제공하는 내장 기능입니다. 이 기사에서는이 기능을 사용하여 간단하고 실용적인 디버깅 대시 보드를 구축하여 개발자가 시스템 상태 및 구성 정보를 빠르게 이해할 수 있도록 도와줍니다.
get_defined_constants () 키는 상수의 이름이고 값은 상수의 값입니다. 실제 매개 변수를 전달하면 이러한 상수를 모듈별로 분류 할 수 있습니다.
print_r(get_defined_constants(true));
이 기능의 출력은 코어, 날짜, PCRE, 사용자 등과 같은 모듈별로 그룹화되며 상수의 원인을 이해하는 데 매우 도움이됩니다.
대시 보드를 디버깅하는 목표는 개발 및 운영 환경에 대한 다양한 정보를 시각적으로 표시하는 것입니다. get_defined_constants ()를 사용하여 현재 정의 된 모든 상수, 특히 사용자 정의 상수가 "사용자"모듈에 나열된 HTML 페이지를 빌드 할 수 있습니다.
또한 phpinfo () , ini_get_all () , $ _server 등과 같은 다른 기능과 함께 포괄적 인 디버깅 인터페이스를 구축 할 수도 있지만이 기사는 상수 부분의 표시에 중점을 둘 것입니다.
다음은 디버그 대시 보드 페이지를 생성하고 다양한 상수 정보를 표 형식으로 표시하는 간단한 PHP 스크립트입니다.
<?php
// 정의 된 모든 상수를 얻으십시오,모듈별로 분류합니다
$constants = get_defined_constants(true);
// HTML 출력 헤더
echo '<!DOCTYPE html><html lang="zh"><head><meta charset="UTF-8">';
echo '<title>PHP 일정한 디버그 대시 보드</title>';
echo '<style>
body { font-family: Arial, sans-serif; margin: 20px; }
h2 { background-color: #f0f0f0; padding: 10px; }
table { width: 100%; border-collapse: collapse; margin-bottom: 30px; }
th, td { border: 1px solid #ccc; padding: 8px; text-align: left; }
th { background-color: #e0e0e0; }
</style></head><body>';
echo '<h1>PHP 일정한 디버그 대시 보드</h1>';
// 각 모듈을 통해 반복하십시오
foreach ($constants as $category => $consts) {
echo "<h2>기준 치수:{$category}</h2>";
echo '<table>';
echo '<tr><th>상수 이름</th><th>값</th></tr>';
foreach ($consts as $name => $value) {
$displayValue = htmlspecialchars(var_export($value, true));
echo "<tr><td>{$name}</td><td>{$displayValue}</td></tr>";
}
echo '</table>';
}
echo '</body></html>';
보안 : 공개 환경에 모든 상수를 표시하면 민감한 정보 (예 : 키, 경로 등)가 표시 될 수 있습니다. 이 페이지는 개발 환경에서만 활성화하거나 인증 메커니즘을 추가하는 것이 좋습니다.
성능 문제 : get_defined_constants () 자체는 성능에 거의 영향을 미치지 않지만 상수가 많은 프로젝트에서는 페이지를 생성하고 렌더링하면 브라우저가 끊김이 발생할 수 있습니다. 페이징을 추가하거나 주문형으로 확장하는 것을 고려할 수 있습니다.
원격 서버를보다 유연하게 디버깅하려면 위의 페이지를 암호 보호 된 디버그 포털로 캡슐화 할 수 있습니다.
<?php
$token = $_GET['token'] ?? '';
if ($token !== 'your-secret-token') {
http_response_code(403);
exit('Access Denied');
}
// 그런 다음 디버그 대시 보드를 출력하십시오
https://debug.m66.net/dashboard.php?token=your-secret-token을 방문하면 원격 상태를 원격으로 볼 수 있습니다. 이 방법은 복잡한 디버깅 도구를 설치하지 않고도 시각적 디버깅 경험을 얻을 수 있습니다.
get_defined_constants () 는 많은 개발자들이 무시하는 강력한 도구입니다. 간단한 포장을 사용하면 완벽하고 사용하기 쉬운 디버그 대시 보드를 구축 할 수 있습니다. 시스템의 작동 상태를 이해하는 데 도움이 될뿐만 아니라 구성 문제를 해결할 때 중요한 정보를 제공합니다. 디버깅은 더 이상 코끼리를 만지는 맹인이 아니라 시각적으로 제어 할 수 있습니다. 개발 도구 상자에이를 통합하면 디버깅이 더 효과적으로 작동합니다.