Já apresentei a instalação do pear. Hoje apresentarei um dos vários pacotes bem conhecidos do pear. Se não houver nada claro, pesquise "Tutorial PEAR" no site para obter o tutorial anterior!
O que vamos apresentar hoje é o pacote Cache_Lite do PEAR. Os olhos dos desenvolvedores Web se arregalam quando falam sobre aceleração, assim como os olhos dos homens se arregalam quando veem uma beleza estonteante. Portanto, a primeira coisa que quero apresentar aqui é o pacote Cache_lite do PEAR. , você pode usar este pacote para armazenar em cache qualquer parte da página da web de acordo com suas necessidades, melhorando muito a geração da página e a velocidade de carregamento!
Primeiro, vá para Lista de pacotes do Pear para baixar o pacote de instalação Cache_Lite. Ao escrever este tutorial, a versão estável é 1.7.2, então baixamos esta versão, descompactamos após o download e colocamos o arquivo no diretório raiz do PEAR (. Como organizar o diretório de arquivos será apresentado mais tarde), e então iremos ao capítulo correspondente do manual para ver como usá-lo. Você pode dar uma olhada na introdução sobre pacotes primeiro. Não há preliminares aqui e iremos diretamente ao tópico. Vamos começar com este exemplo. Adicionei comentários chineses ao exemplo.
require_once "Cache/Lite.php";//Este é o endereço relativo ao PEAR Depois de encontrar o arquivo Lite.php no pacote que você acabou de baixar, você deve saber como implantar esta pasta!
$opções=array(
'cacheDir'=>'/tmp/',//Este é o caminho do Cache, é melhor usar um caminho absoluto, que será explicado em nosso exemplo
'lifeTime'=>7200, //Tempo de expiração do cache em segundos
'pearErrorMode'=>CACHE_LITE_ERROR_DIE//Modo de relatório de erros
);
$cache=newCache_Lite($options);//Cria um cache após definir os parâmetros
if($data=$cache->get('id_of_the_page')){//Se o cache com id=id_of_the_page existir, faça eco diretamente dos dados armazenados em cache
// Cache atingido!
// O conteúdo está em $data
// (...)
}else{//Se o cache não existir, gere um cache
// Nenhum cache válido encontrado (você precisa criar e salvar a página)
// (...)
}
Depois de ler o exemplo acima, você acha que é muito simples? Na verdade, a chave para o cache não é como gerar e excluir caches, mas como equilibrar o relacionamento entre caches estáticos e dinâmicos e como reconstruir o cache no momento apropriado. Deixe-me começar com um exemplo para que todos percebam os benefícios do cache! , crie um cache de arquivo em tutor (o diretório raiz correspondente ao exemplo em nosso tutorial). Para sistemas operacionais *nix, defina a propriedade como 0777 e, em seguida, crie cache.php na pasta tutor, insira o seguinte código
<? php
require_once"config.php";
require_once"Cache/Lite.php";
//O código a seguir serve para calcular o tempo de execução da página e não tem nada a ver com cache.
funçãoget_microtime()
{
list($usec,$sec)=explode(' ',microtime());
return((float)$usec+(float)$sec);
}
$s= get_microtime();
//A seguir estão as configurações de cache
$opções=array(
'cacheDir'=> WEB_DIR."/cache/",
//Por favor, vá para tutor (o diretório raiz correspondente aos exemplos em nosso tutorial)
//Cria cache de arquivo,
//*sistema operacional nix, defina o atributo como 0777
'lifeTime'=>10,//tempo de expiração de 10 segundos
'pearErrorMode'=>CACHE_LITE_ERROR_DIE
);
$cache=newCache_Lite($opções);
$cache_id='cache'; //id deve ser único
//Caso contrário, entrará em conflito com o cache de outras pessoas.
if($dados=$cache->get($cache_id)){
//dados são o resultado da obtenção de dados, se o cache existir e não tiver expirado,
//Obter dados diretamente
eco$dados;
}outro{
//Caso contrário criamos um cache
// Abaixo usamos loops deliberadamente para consumir tempo
enquanto($i<10000000)
$eu++;
$data='Hora de criação do cache:'.date("Ymd H:i:s");
$data.="<p>O tempo de execução sem cache é: ".(get_microtime()-$s)."seconds";
eco$dados;
$cache->salvar($dados);
}
echo"<p>A página atual leva: ".(get_microtime()-$s)."segundos</p>";
?>
Execute http://127.0.0.1/tutor/cache.php no navegador e veja se um arquivo é gerado no diretório de cache. É muito gratificante, certo? !
Na página web, descobrimos que o primeiro tempo de execução demorou cerca de 1 segundo, e depois que o cache foi gerado, o tempo foi de apenas 1/1000 do original. Não preciso mais descrever essa eficiência! ! Na verdade, o processo geral do exemplo acima é: 1. Estabelecer parâmetros de cache, incluindo o ID do cache 2. Verifique se o cache existe com base nos parâmetros e no ID. Se existir, os dados do cache são obtidos em $data; variável e, em seguida, ecoado; caso contrário, gere novamente o cache, salve os resultados da página em uma variável e, em seguida, grave os dados da variável no cache. No entanto, este método é muito inconveniente, porque devemos escrever toda a saída em uma variável, o que é realmente mais problemático. Requer muitas conexões de string e o código é difícil de manter. Faça esta abordagem. Mas não se preocupe, o poderoso PEAR não é tão retardado mental, então ele também oferece outra maneira, que é obter o buffer e retirar as variáveis. Vamos dar uma olhada neste exemplo simples. O capítulo do manual correspondente está aqui. .
<?php
require_once"config.php";
require_once"Cache/Lite/Output.php";
//Observe que os arquivos necessários aqui são diferentes.
$opções=array(
'cacheDir'=> WEB_DIR."/cache/",
'lifeTime'=>10,//tempo de expiração de 10 segundos
'pearErrorMode'=>CACHE_LITE_ERROR_DIE
);
$cache=newCache_Lite_Output($opções);
$cache_id='obcache';
if(!($cache->start($cache_id))){
//Se não existir, crie um cache. Se existir, o programa gerará automaticamente o cache.
?>
Você pode fazer o que quiser aqui,
Incluindo a execução de php
Não é muito conveniente que todas as consultas ao banco de dados, incluindo consultas ao banco de dados, possam ser concluídas aqui, desde que o PHP permita?
<?php
$cache->end();//Não se esqueça disso,
//Caso contrário o cache nunca será criado com sucesso.
//Esta função está saindo do buffer de saída
}
?>
Vá e veja se há outro arquivo no diretório de cache?
Isso conclui a introdução ao cache. Aqui estão algumas coisas a serem observadas:
1. O ID do cache deve ser único e alguns parâmetros podem ser integrados
2. É melhor escrever um caminho absoluto para o caminho do cache.
3. O foco desta seção está nos comentários.
Além disso, através da minha introdução, você pode ler o manual correspondente sobre como excluir o cache. use o exemplo acima, continue A operação do cache não deve ser difícil.