현재 위치: > 최신 기사 목록> 상수 상태를 저장하기 위해 캐시 시스템을 만듭니다

상수 상태를 저장하기 위해 캐시 시스템을 만듭니다

M66 2025-05-20

PHP에서 상수는 매우 중요한 개념이며 스크립트 실행 중 그 값은 변경할 수 없습니다. 일반적으로 상수는 데이터베이스 연결 정보, 시스템 경로, API 키 등과 같은 고정 된 구성 값을 저장하는 데 사용됩니다. get_defined_constants () 함수는 현재 정의 된 모든 상수를 얻는 데 도움이 될 수 있습니다.

그러나 자주 읽어야 할 상수가 많으면 상수에 대한 각 액세스에는 특정 오버 헤드, 특히 더 큰 시스템에서 성능 향상이 특히 중요해집니다. 프로그램의 성능을 향상시키고 매번 상수의 정의를 읽지 않기 위해 get_defined_constants () 함수를 통해 캐시 시스템을 만들어 상수 상태를 저장하여 불필요한 반복 계산을 줄여 시스템의 성능을 향상시킬 수 있습니다.

1 단계 : get_defined_constants () 함수를 이해합니다

get_defined_constants () 함수는 PHP의 내장 함수로 정의 된 모든 상수 및 해당 값을 포함하는 연관 배열을 반환합니다. 이 함수의 구문은 다음과 같습니다.

 array get_defined_constants(bool $categorize = false);
  • $ 분류 매개 변수는 반환 된 배열이 카테고리별로 그룹화되는지 여부를 결정합니다. true 로 설정되면 상수의 범주에 의해 반환됩니다. False (기본값) 인 경우 모든 상수가 포함 된 평평한 배열을 반환합니다.

2 단계 : get_defined_constants ()를 사용하여 캐시 시스템을 만듭니다

성능을 향상시키기 위해 get_defined_constants () 함수를 사용하여 캐시 시스템을 만들 수 있습니다. 캐시 파일에 상수를 저장하고 다음에 액세스 할 때는 get_defined_constants ()를 통해 계산하는 대신 캐시 파일에서 직접 읽습니다.

1. 캐시 스토리지 디렉토리를 만듭니다

먼저 캐시를 저장하기위한 디렉토리가 있는지 확인해야합니다. 예를 들어, 프로젝트의 루트 디렉토리에서 CACHE 라는 폴더를 만들 수 있습니다.

 $cacheDir = __DIR__ . '/cache/';
if (!file_exists($cacheDir)) {
    mkdir($cacheDir, 0777, true);
}

2. 캐시가 존재하는지 확인하십시오

상수를 얻기 전에 캐시 파일이 이미 존재하는지 확인할 수 있습니다. 캐시 파일이 존재하고 만료되지 않은 경우 캐시의 상수가 직접로드됩니다. 그렇지 않으면 get_defined_constants ()가 다시 호출되고 결과가 캐시됩니다.

 $cacheFile = $cacheDir . 'constants_cache.php';

if (file_exists($cacheFile) && (filemtime($cacheFile) > (time() - 3600))) {
    // 캐시 파일이 존재하며 1 시간 이내에 만료되지 않습니다.,캐시를 직접로드하십시오
    $constants = include($cacheFile);
} else {
    // 캐시 파일이 존재하지 않거나 만료되었습니다,상수 및 캐시를 다시 구입하십시오
    $constants = get_defined_constants();
    file_put_contents($cacheFile, '<?php return ' . var_export($constants, true) . ';');
}

3. 상수를 읽으십시오

일단 상수가 캐시되면 필요한 곳마다 캐시의 상수를 직접 사용할 수 있습니다. 예를 들어, 상수를 다룰 때 간단한 배열 액세스를 통해 상수의 값을 얻을 수 있습니다.

 echo $constants['MY_CONSTANT']; // 산출 MY_CONSTANT 가치

4. 캐시를 청소하십시오

캐시 파일이 너무 많은 디스크 공간을 차지하는 것을 피하기 위해 캐시 파일을 정기적으로 정리할 수 있습니다. Unlink () 함수를 사용하여 캐시 파일을 삭제하거나 특정 조건에서 캐시를 지울 수 있습니다.

 // 클리어 캐시
unlink($cacheFile);

3 단계 : 코드 예제 완료

다음은 get_defined_constants ()를 사용하여 간단한 캐시 시스템을 만드는 방법을 보여주는 완전한 PHP 예입니다.

 <?php
$cacheDir = __DIR__ . '/cache/';
$cacheFile = $cacheDir . 'constants_cache.php';

// 캐시 디렉토리를 만듭니다(존재하지 않는 경우)
if (!file_exists($cacheDir)) {
    mkdir($cacheDir, 0777, true);
}

// 캐시 파일이 존재하고 유효한지 확인하십시오
if (file_exists($cacheFile) && (filemtime($cacheFile) > (time() - 3600))) {
    // 캐시 파일이 존재하며 1 시간 이내에 만료되지 않습니다.,캐시를 직접로드하십시오
    $constants = include($cacheFile);
} else {
    // 캐시 파일이 존재하지 않거나 만료되었습니다,상수 및 캐시를 다시 구입하십시오
    $constants = get_defined_constants();
    file_put_contents($cacheFile, '<?php return ' . var_export($constants, true) . ';');
}

// 캐시에 상수를 사용하십시오
echo isset($constants['MY_CONSTANT']) ? $constants['MY_CONSTANT'] : '상수는 존재하지 않습니다';

?>

요약

get_defined_constants () 함수를 활용하면 PHP 스크립트에서 모든 상수를 쉽게 얻을 수 있습니다. 상수 상태를 캐싱함으로써 매번 상수를 처음부터 계산하지 않아 애플리케이션의 성능이 향상됩니다. 이 캐싱 전략은 상수 값을 자주 읽어야하는 시나리오에 이상적입니다.

위의 단계를 통해 단순히 일정한 캐시 시스템을 구현하여 성능을 향상시키면서 불필요한 컴퓨팅 오버 헤드를 줄일 수 있습니다. 대규모 프로젝트를 구축 할 때 성능 병목 현상이 발생하는 경우이 접근 방식을 사용하여 상수 관리를 최적화하십시오.