[PHP CACHE] OPcache - Instalando e usando Artigo

Conheça os cursos gratuitos do WebDevBr! - Inscreva-se!


Este artigo foi publicado a 2 anos, 6 meses, 1 semana, 2 dias atrás.

Todo mundo sabe que cache é a primeira coisa a se fazer para melhorar a performance de uma aplicação. O que muitos devs não sabem é que o PHP já vem com o OPcache desde a versão 5.5 ou superior, mas calma, se você não usa esta versão do PHP não se preocupe, não vai afetar seus arquivos PHP, a configuração é feita dentro do php.ini.

Como funciona?

Sempre que requisitamos um arquivo PHP ele faz todo o processo que já conhecemos, carrega os arquivos, debug, executa o código, enfim... isso não é o importante. Ao final ele gera um bytecode com tudo pronto, imagine se ao invés de utilizar o arquivo PHP em si ele apenas pegasse esse bytecode e pronto, muito mais rápido.

O OPcache faz exatamente isso, e é muito simples de habilitar.

Gostou deste artigo?

Receba atualizações semanais com novos artigos do WebDevBr e outras dicas!

Fazendo funcionar

Primeiro descubra aonde o seu arquivo php.ini está, isso é muito simples, apenas rode um phpinfo() criando um arquivo php com o seguinte código:

<?php
phpinfo();

E no navegador (ou no terminal) encontre a linha Configuration File (php.ini) Path, pronto, você achou o php.ini.

Abra o php.ini e adicione a seguinte linha:

extension=php_opcache.dll

Ao rodar você pdoe ter uma mensagem de erro, se este for o seu caso tente o código abaixo ao invés do anterior.

zend_extension=php_opcache.dll

Ela pode ficar junto com as outras instruções de carregamento de extensões, você sód eve tomar o cuidado de adicionar antes do carregamento da extensão do XDebug (se tiver instalado, claro), se não vai dar erro.

Pronto, instalado.

Configurando

O meu php.ini já trouxe uma sessão com exemplos de configuração,s e o seu também tiver, estude esta parte do arquivo com calma e entenda o que cada parâmetro faz.

Atualmente estou usando esta configuração:

opcache.validate_timestamp = 1
opcache.revalidate_freq = 0
opcache.memory_consumption = 64
opcache.interned_strings_buffer = 16
opcache.max_accelerated_files = 4000
opcache.fast_shutdown = 1

Você pode colocar depois da linha de carregamento da extensão.

O importante é entender a primeira linha, o ideal para ambientes de produção é que seja passado um 0, assim o PHP não vai checar se houve mudança no arquivo, porém para ambientes de desenvolvimento isso pode dar dor de cabeça, já que você vai ter que limpar o cache "na mão".

Para limpar o cache manualmente apenas rode o comando opcache_reset(), claro que você vai precisar de um arquivo parecido com este:

<?php
opcache_reset();

Agora é só usar a criatividade pra usá-lo, pode ser em linha de comando, no navegador ou até colocar em um executável nas variáveis de ambiente:

php opcache_reset.php

No Windows este arquivo se chamaria opcachereset.bat e no Linux e no Mac apenas opcachereset, sem extensão.

Checando

Logo após reiniciar o server verifique no phpinfo() se o bloco Zend OPcache existe e se o status Opcode Caching é Opcode Caching e o Optimization é Enabled, se estiver assim, você fez tudo certo.

Conclusão

O OPcache é uma solução incrível que o PHP 5.5 trouxe para melhorar a performance da sua aplicação, é só ativar pra usar, não precisa configurar nada no seu projeto (o que aumenta a compatibilidade da aplicação). O único ponto é que você precisa encontrar uma hospedagem que já tenha suporte ao PHP 5.5 e o OPcache ativado, claro que se você tem um Cloud (ou afins) não vai ter problema.


Cursos relacionados


* Parcelamento apenas cartão de crédito! Pode haver uma pequena variação no parcelamento em relação a simulações apresentadas!