현재 위치: > 최신 기사 목록> get_defined_constants ()로 디버그 대시 보드를 작성하십시오.

get_defined_constants ()로 디버그 대시 보드를 작성하십시오.

M66 2025-06-05

PHP 프로젝트에서 디버깅을 할 때, 특히 여러 타사 라이브러리가 통합 된 대규모 프로젝트 나 환경에서 현재 어떤 상수가 정의되어 있는지 종종 확인해야합니다. get_defined_constants ()는 시스템 기본값, 확장로드 및 사용자 정의 상수를 포함하여 모든 정의 된 상수를 얻을 수 있도록 PHP가 제공하는 내장 기능입니다. 이 기사에서는이 기능을 사용하여 간단하고 실용적인 디버깅 대시 보드를 구축하여 개발자가 시스템 상태 및 구성 정보를 빠르게 이해할 수 있도록 도와줍니다.

get_defined_constants 란?

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>';

안전 및 성능 예방 조치

  1. 보안 : 공개 환경에 모든 상수를 표시하면 민감한 정보 (예 : 키, 경로 등)가 표시 될 수 있습니다. 이 페이지는 개발 환경에서만 활성화하거나 인증 메커니즘을 추가하는 것이 좋습니다.

  2. 성능 문제 : 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 () 는 많은 개발자들이 무시하는 강력한 도구입니다. 간단한 포장을 사용하면 완벽하고 사용하기 쉬운 디버그 대시 보드를 구축 할 수 있습니다. 시스템의 작동 상태를 이해하는 데 도움이 될뿐만 아니라 구성 문제를 해결할 때 중요한 정보를 제공합니다. 디버깅은 더 이상 코끼리를 만지는 맹인이 아니라 시각적으로 제어 할 수 있습니다. 개발 도구 상자에이를 통합하면 디버깅이 더 효과적으로 작동합니다.