PHP - Cache de Includes
Olá meus Unicórnios! 🦄✨
É meio estranho pensar nisto, mas imagine que você tenha um include para cada seção da capa.
Um carrega os últimos vídeos, um carrega os últimos artigos, etc.
Ficar carregando diretamente da base de dados não é eficiente.
Então, iremos criar um cache do conteúdo que é gerado por cada um destes includes.
Para este exemplo, iremos considerar que temos:
- index.php: A capa do site
- inc_artigos.php: Listagem dos últimos Artigos
- inc_videos.php: Listagem dos últimos Vídeos
- inc_produtos.php: Listagem dos últimos Produtos
Dentro do "index.php", temos apenas a chamada aos includes:
<?
include("inc_artigos.php");
include("inc_videos.php");
include("inc_produtos.php");
?>Agora iremos criar o cache do "inc_artigos.php".
Tecnicamente não é possível "pegar" todo o arquivo html deste arquivo com facilidade.
Então, o que iremos fazer é manipular o buffer de saída.
A primeira coisa é iniciar um NOVO buffer, desta foram, tudo que for exibido após este ponto estará disponível no buffer:
<?
ob_start()
?>No final, iremos pegar tudo que foi inserido no buffer desde do último "ob_start()":
<?
$content = ob_get_clean();
?>Agora vamos agrupar isto no "index.php":
<?
$cacheFile = "cache/artigos.php";
if( file_exists($cacheFile) ){
include $cacheFile;
}else{
ob_start();
include("inc_artigos.php");
$content = ob_get_clean();
file_put_contents($cacheFile, $content);
echo $content;
}
?>E depois é só replicar para cada include!
Por hoje é só, meus unicórnios! 🦄✨
Que a magia do arco-íris continue brilhando em suas vidas! Até mais! 🌈🌟
Leia também
API Mágica: notificações Web Push no navegador com PHP
Web Push com a API Mágica em PHP puro: o navegador se inscreve, o seu site envia a notificação e a API conta o clique. Sem Composer e sem biblioteca.
IndexNow: avisando o Bing e o Yandex mais rápido
Como criar a chave do IndexNow e avisar Bing e Yandex das suas páginas novas com Node.js e PHP: as requisições, os erros reais e as armadilhas.
llms.txt: por que importa e como gerar em PHP
Por que o llms.txt importa para quem quer ser citado pela IA, e como gerar o seu em PHP puro lendo o sitemap.xml que voce ja tem.