📅 Conexão KingHost 🚀 Conteúdos exclusivos para o seu negócio evoluir no digital 💰

Kinghost | Blog

Conhecendo o Alternative PHP Cache (APC)

Publicado em 25/05/2016

Atualizado em 26/04/2023

O APC é um cache de opcode que pode aumentar exponencialmente o desempenho da sua aplicação.

Entendendo Opcode:

Quando realizada um requisição para um script php, o engine do PHP lê o script e compila em bytecode. O bytecode está em um nível intermediário entre a linguagem de máquina e o código-fonte. Ele não é um executável, porém pode ser interpretado por uma máquina virtual, tendo maior portabilidade, pois independe da arquitetura do ambiente. No PHP, o bytecode gerado é chamado de opcode. O APC guarda o cache em opcode, o qual é reutilizado nas requisições subsequentes, ou seja, ele busca um opcode, o qual está em nível intermediário e será retornado de forma mais rápida. Com isso, ele reduz o tempo de processamento e melhora o desempenho do site ou sistema significativamente.

Instalação:

Em distribuições como Ubuntu, você pode facilmente instalar o APC  com o comando abaixo:

sudo apt-get install php-apc

Após instalar, o APC virá com um script o apc.php, que pode ser utilizado para administração do cache através de uma interface gráfica. Para acessar este arquivo será solicitada uma senha a qual pode ser definida dentro do arquivo.

Cache de objetos com APC:

Com APC você pode ter cache de objetos de uma forma simples, por padrão as funções do APC já fazem serialização de objeto antes de inseri-lo no cache e desserialização na hora de obtê-lo do cache. Para Inserir, basta fazer o seguinte:

<?php

// classe para armazenar dados do usuario

class usuario {

      private $id;

      private $nome;

      private $email;

      private $telefone;



      public function setId($id) {

            $this->id = $id;

      }

      public function getId() {

            return $this->id;

      }



      public function setNome($nome) {

            $this->nome = $nome;

      }

      public function getNome() {

            return $this->nome;

      }



      public function setEmail($email) {

            $this->email = $email;

      }

      public function getEmail() {

            return $this->email;

      }

}



// verifica se objeto consta no cache

if ($usuario = apc_fetch('usuario')) {

      echo "Dados no Cache: ";

} else {

      // criar cache para objeto usuario

      $usuario = new Usuario();

      $usuario->setId(1);

      $usuario->setNome('Fernando');

      $usuario->setEmail('[email protected]');

            // adicionar objeto usuário no cache

      apc_add('usuario', $usuario);

}



echo "<pre>";

echo $usuario->getId() . PHP_EOL;

echo $usuario->getNome() . PHP_EOL;

echo $usuario->getEmail() . PHP_EOL;

echo "</pre>";



Para limpar o cache você pode utilizar:

apc_delete('nome_variável');

Para limpar todo o cache OPCode você pode utilizar:

apc_clear_cache();

Documentação:

A documentação pode ser encontrada diretamente no link http://php.net/manual/pt_BR/book.apc.php

Conclusão:

Tendo em vista que o cache fica dentro da memória RAM, você deve pesar a necessidade, o tamanho da aplicação e o que você tem de recursos disponíveis antes de utilizar este tipo de ferramenta, mas ao utilizar o conceito de cache de objetos de forma correta você obterá um crescimento de desempenho de forma exponencial. A ferramenta em si oferece várias funções que facilitam a criação e manipulação de cache, com isso aumentando a velocidade de produção ao utilizar o conceito.

O que você achou deste conteúdo?

O que você achou deste conteúdo?

Fernando

Fernando Nunes

Assistente de desenvolvimento em PHP na Kinghost – Entusiasta do estudo de orientação a objeto e de todos os desafios e complexidades relacionados a ele.

Fernando

Fernando Nunes

Assistente de desenvolvimento em PHP na Kinghost – Entusiasta do estudo de orientação a objeto e de todos os desafios e complexidades relacionados a ele.

Compartilhe esse conteúdo com alguém que possa gostar também

Conteúdos relacionados

As ameaças virtuais estão mudando constantemente e se tornando cada dia mais sofisticadas. Por isso, para quem tem um negócio online, a segurança é um ponto que merece grande atenção. De acordo com o Relatório do Sitelock que analisou 14 milhões de sites em 2022, sites recebem cerca de 5.5 vezes mais tráfego de bots...

Assine a nossa newsletter e receba conteúdos para apoiar o crescimento do seu negócio

Sem Título(obrigatório)

📅 Aulão GRATUITO 🚀 Como VENDER MAIS na internet 💰

Mensagens para você