이전에 pear 설치에 대해 소개한 적이 있습니다. 오늘은 잘 알려진 여러 패키지 중 하나를 소개하겠습니다. 불분명한 점이 있으면 사이트에서 "PEAR 튜토리얼"을 검색하여 이전 튜토리얼을 얻으세요!
오늘 소개할 것은 웹 개발자들이 속도를 이야기하면 눈이 휘둥그래지는 것입니다. 마치 남자들이 멋진 아름다움을 보면 눈이 휘둥그레지는 것처럼, 여기서 가장 먼저 소개하고 싶은 것은 PEAR의 Cache_lite 패키지입니다. , 이 패키지를 사용하여 필요에 따라 웹페이지의 일부를 캐시할 수 있으므로 페이지 생성 및 로딩 속도가 크게 향상됩니다!
먼저 Pear's List Packages로 이동하여 Cache_Lite 설치 패키지를 다운로드합니다. 이 튜토리얼을 작성할 때 안정 버전은 1.7.2이므로 이 버전을 다운로드하고 다운로드 후 압축을 풀고 파일을 PEAR의 루트 디렉터리에 배치합니다( 파일 디렉터리 구성 방법은 나중에 소개하겠습니다.) 그런 다음 매뉴얼의 해당 장으로 이동하여 사용 방법을 살펴보겠습니다. 먼저 패키지에 대한 소개를 살펴보세요. 여기에는 전희가 없으며 다음은 Cache_Lite::get()의 예입니다. 이 예부터 시작해 보겠습니다. 예에 중국어 주석을 추가했습니다.
require_once "Cache/Lite.php";//방금 다운로드한 패키지에서 Lite.php 파일을 찾은 후 이 폴더를 배포하는 방법을 알아야 합니다.
$옵션=배열(
'cacheDir'=>'/tmp/',//이것은 캐시의 경로입니다. 절대 경로를 사용하는 것이 가장 좋습니다. 이에 대해서는 예제에서 설명하겠습니다.
'lifeTime'=>7200, //캐시 만료 시간(초)
'pearErrorMode'=>CACHE_LITE_ERROR_DIE//오류 보고 모드
);
$cache=newCache_Lite($options);//매개변수 설정 후 캐시 생성
if($data=$cache->get('id_of_the_page')){//id=id_of_the_page인 캐시가 존재하는 경우 캐시된 데이터를 직접 출력합니다.
// 캐시 적중!
// 내용은 $data에 있습니다.
// (...)
}else{//캐시가 존재하지 않으면 캐시를 생성합니다.
// 유효한 캐시를 찾을 수 없습니다(페이지를 만들고 저장해야 함).
// (...)
}
위의 예를 읽고 나면 매우 간단하다는 것을 알 수 있습니까? 사실 캐싱의 핵심은 어떻게 캐시를 생성하고 삭제하느냐가 아니라 정적 캐시와 동적 캐시의 관계 균형을 어떻게 맞추느냐, 그리고 적절한 시기에 캐시를 어떻게 재구축하느냐이다. 모든 사람이 캐싱의 이점을 이해할 수 있도록 예제부터 시작하겠습니다! , tutorial(튜토리얼의 예에 해당하는 루트 디렉터리) 아래에 파일 캐시를 생성하세요. *nix 운영 체제의 경우 속성을 0777로 설정한 다음 tutorial 폴더 아래에 캐시.php를 생성하고 다음 코드를 입력하세요
. PHP
require_once"config.php";
require_once"캐시/Lite.php";
//다음 코드는 페이지 실행 시간을 계산하는 코드로 캐시와는 관련이 없습니다.
함수get_microtime()
{
list($usec,$sec)=explode(' ',microtime());
return((float)$usec+(float)$sec);
}
$s= get_microtime();
//다음은 캐시 설정입니다.
$옵션=배열(
'cacheDir'=> WEB_DIR."/cache/",
//튜터(튜토리얼의 예제에 해당하는 루트 디렉터리)로 이동하세요.
//파일 캐시 생성,
//*nix 운영 체제에서는 속성을 0777로 설정하세요.
'lifeTime'=>10,//10초 만료 시간
'pearErrorMode'=>CACHE_LITE_ERROR_DIE
);
$cache=newCache_Lite($options);
$cache_id='cache'; //id는 고유해야 합니다.
//그렇지 않으면 다른 사람의 캐시와 충돌하게 됩니다.
if($data=$cache->get($cache_id)){
//data는 데이터를 가져온 결과입니다. 캐시가 존재하고 만료되지 않은 경우,
//직접 데이터 가져오기
에코$데이터;
}또 다른{
//그렇지 않으면 캐시를 생성합니다.
// 아래에서는 시간을 소비하기 위해 의도적으로 루프를 사용합니다.
동안($i<10000000)
$i++;
$data='캐시 생성 시간:'.date("Ymd H:i:s");
$data.="<p>캐시가 없는 실행 시간은 ".(get_microtime()-$s)."초";
에코$데이터;
$캐시->저장($data);
}
echo"<p>현재 페이지 소요 시간: ".(get_microtime()-$s)."초</p>";
?>
브라우저에서 http://127.0.0.1/tutor/cache.php를 실행하여 캐시 디렉터리에 파일이 생성되는지 확인해보세요. 매우 만족스러우시죠? !
웹페이지에서는 첫 번째 실행 시간이 약 1초 정도 소요되었으며, 캐시가 생성된 후에는 시간이 원본의 1/1000에 불과하다는 것을 확인했습니다. 이 효율성은 더 이상 설명할 필요가 없습니다. ! 실제로 위 예의 일반적인 프로세스는 다음과 같습니다. 1. 캐시 ID를 포함한 캐시 매개변수를 설정합니다. 2. 매개변수와 ID를 기반으로 캐시가 존재하는지 확인합니다. 캐시 데이터는 $data에서 가져옵니다. 그렇지 않으면 캐시를 다시 생성하고 페이지 결과를 변수에 저장한 다음 변수의 데이터를 캐시에 씁니다. 그러나 이 방법은 모든 출력을 변수에 작성해야 하기 때문에 매우 불편하며 실제로는 더 번거롭습니다. 물론, 간단한 캐시를 사용하는 것이 가장 좋습니다. 이 접근 방식을 취하십시오. 그러나 걱정하지 마십시오. 강력한 PEAR는 정신적으로 지체되지 않으므로 실제로 버퍼를 가져오고 변수를 제거하는 다른 방법도 제공합니다. 해당 매뉴얼 장은 여기에 있습니다. .
<?php
require_once"config.php";
require_once"캐시/Lite/Output.php";
//여기서 필요한 파일은 다릅니다.
$옵션=배열(
'cacheDir'=> WEB_DIR."/cache/",
'lifeTime'=>10,//10초 만료 시간
'pearErrorMode'=>CACHE_LITE_ERROR_DIE
);
$cache=newCache_Lite_Output($options);
$cache_id='obcache';
if(!($cache->start($cache_id))){
//존재하지 않는 경우 캐시를 생성합니다. 존재하는 경우 프로그램이 자동으로 캐시를 출력합니다.
?>
여기서는 당신이 원하는 것은 무엇이든 할 수 있습니다.
PHP 실행 포함
데이터베이스 쿼리를 포함한 모든 데이터베이스 쿼리를 PHP가 허용하는 한 여기에서 완료할 수 있다는 점이 매우 편리하지 않나요?
<?php
$cache->end();//이것을 잊지 마세요.
//그렇지 않으면 캐시가 성공적으로 생성되지 않습니다.
//이 함수는 출력 버퍼에서 나옵니다.
}
?>
가서 캐시 디렉토리에 다른 파일이 있는지 확인하시겠습니까?
이것으로 캐시에 대한 소개를 마칩니다. 다음은 참고할 사항입니다.
1. 캐시 ID는 고유해야 하며 일부 매개변수는 통합될 수 있습니다.
2. 캐시의 캐시 경로는 절대 경로로 작성하는 것이 가장 좋습니다.
3. 이 섹션의 초점은 댓글입니다.
또한, 제 소개를 통해 해당 매뉴얼을 읽으시면 다른 분들에게도 영감을 줄 수 있습니다. 위의 예를 사용하여 계속하십시오. 캐시 작업은 어렵지 않아야 합니다.