flightphp/cache
가볍고, 간단하며 독립적인 PHP 파일 내 캐싱 클래스. Wruczek/PHP-File-Cache에서 포크됨
장점
- 가볍고, 독립적이며 간단함
- 모든 코드가 하나의 파일에 포함 - 불필요한 드라이버 없음
- 안전함 - 생성된 모든 캐시 파일에는 die가 포함된 PHP 헤더가 있어, 경로를 알고 서버가 제대로 구성되지 않았더라도 직접 접근이 불가능
- 잘 문서화되고 테스트됨
- flock을 통해 동시성을 올바르게 처리
- PHP 7.4+ 지원
- MIT 라이선스 하에 무료
이 문서 사이트는 각 페이지를 캐시하기 위해 이 라이브러리를 사용합니다!
코드를 보려면 여기를 클릭하세요.
설치
Composer를 통해 설치:
composer require flightphp/cache사용법
사용법은 상당히 간단합니다. 캐시 디렉토리에 캐시 파일을 저장합니다.
use flight\Cache;
$app = Flight::app();
// 캐시가 저장될 디렉토리를 생성자에 전달합니다
$app->register('cache', Cache::class, [ __DIR__ . '/../cache/' ], function(Cache $cache) {
// 캐시는 프로덕션 모드에서만 사용되도록 보장합니다
// ENVIRONMENT는 부트스트랩 파일이나 앱의 다른 곳에서 설정된 상수입니다
$cache->setDevMode(ENVIRONMENT === 'development');
});캐시 값 가져오기
get() 메서드를 사용하여 캐시된 값을 가져옵니다. 만료된 경우 캐시를 새로 고치는 편의 메서드를 원하면 refreshIfExpired()를 사용할 수 있습니다.
// 캐시 인스턴스 가져오기
$cache = Flight::cache();
$data = $cache->refreshIfExpired('simple-cache-test', function () {
return date("H:i:s"); // 캐시할 데이터 반환
}, 10); // 10초
// 또는
$data = $cache->get('simple-cache-test');
if(empty($data)) {
$data = date("H:i:s");
$cache->set('simple-cache-test', $data, 10); // 10초
}캐시 값 저장하기
set() 메서드를 사용하여 캐시에 값을 저장합니다.
Flight::cache()->set('simple-cache-test', 'my cached data', 10); // 10초캐시 값 존재 여부 확인하기
exists() 메서드를 사용하여 캐시에 값이 존재하는지 확인합니다.
if(Flight::cache()->exists('simple-cache-test')) {
// 무언가 수행
}캐시와 함께 메타데이터 추출하기
캐시 항목에 대한 타임스탬프 및 기타 메타데이터를 추출하려면 올바른 매개변수로 true를 전달해야 합니다.
$data = $cache->refreshIfExpired("simple-cache-meta-test", function () {
echo "Refreshing data!" . PHP_EOL;
return date("H:i:s"); // 캐시할 데이터 반환
}, 10, true); // true = 메타데이터와 함께 반환
// 또는
$data = $cache->get("simple-cache-meta-test", true); // true = 메타데이터와 함께 반환
/*
메타데이터와 함께 검색된 캐시된 항목 예시:
{
"time":1511667506, <-- 유닉스 타임스탬프 저장
"expire":10, <-- 초 단위 만료 시간
"data":"04:38:26", <-- 역직렬화된 데이터
"permanent":false
}
메타데이터를 사용하면, 예를 들어 항목이 저장된 시점이나 만료되는 시점을 계산할 수 있습니다
"data" 키를 통해 데이터 자체에 접근할 수도 있습니다
*/
$expiresin = ($data["time"] + $data["expire"]) - time(); // 데이터가 만료되는 유닉스 타임스탬프를 가져와 현재 타임스탬프에서 빼기
$cacheddate = $data["data"]; // "data" 키를 통해 데이터 자체에 접근
echo "Latest cache save: $cacheddate, expires in $expiresin seconds";소스 코드
코드를 보려면 https://github.com/flightphp/cache를 방문하세요.