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?