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?