A palestra discute os conceitos básicos de caching em PHP, incluindo opcodes PHP, quando o caching é vantajoso, e técnicas de caching de conteúdo e recordsets. Algumas ferramentas para caching em PHP são apresentadas, como APC, PEAR Cache e Zend Cache.
Entendendo os principais conceitos de caching em PHP
1. Entendendo os conceitos de caching em PHP
Encontro Nacional Linuxchix Brasil
Brasília – DF – Brasil
Setembro – 2007
Adler Medrado
2. Entendendo os conceitos de caching em PHP
Apresentação
● Desenvolvedor/Analista no MDIC
● Consultor pela Nesher Technologies
● Instrutor de PHP na X25 Treinamentos
● Membro da coordenação do grupo de
usuários PHP do DF
● Entusiasta de PHP e Software Livre
3. Entendendo os conceitos de caching em PHP
Introdução
Esta palestra visa demonstrar os conceitos
básicos de:
● Opcodes PHP
● Quando é vantagem usar Cache
● Caching de conteúdo
● Caching de Recordsets
● Ferramentas para caching
4. Entendendo os conceitos de caching em PHP
Opcodes PHP
● Abreviação de Operation Code.
● É um trecho de instrução a ser executada
pelo computador.
● Linguagem de máquina
● Resultado da conversão do código de
programação para linguagem de máquina
● Linguagem de máquina é difícil e tediosa
para seres humanos desenvolverem
diretamente
5. Entendendo os conceitos de caching em PHP
Funcionamento do PHP sem uso de caching
FONTES DE DADOS
BANCO
DE
DADOS
BROWSER INTERNET SCRIPT
PHP
DOCUMENTO
XML
6. Entendendo os conceitos de caching em PHP
Funcionamento do PHP sem uso de caching
FONTES DE DADOS
BANCO
DE
DADOS
BROWSER SCRIPT
INTERNET PHP
DOCUMENTO
XML
Cache
7. Entendendo os conceitos de caching em PHP
Caching de conteúdo
● É viável quando um determinado conteúdo
não é modificado a todo instante. Não é
viável para websites ou sistemas que
possuem uma atualização de conteúdo
muito constante.
● Exemplo:
– Website de notícias com cache que é
atualizado a cada 10 minutos
10. Entendendo os conceitos de caching em PHP
Caching de Recordset
● É viável quando algumas áreas do seu site
são muito dinâmicas e com isso o cache de
conteúdo se torna inviável.
● Exemplo:
– O mesmo website de notícias utilizado
anteriormente.
12. Entendendo os conceitos de caching em PHP
APC – Alternative PHP Cache
● Extensão aberta, livre e robusta.
● Visa prover um framework que permita
otimização de códigos PHP através de
caching
● Instalável via PECL
– PHP Extension Community Library
– http://pecl.php.net
13. Entendendo os conceitos de caching em PHP
APC – Alternative PHP Cache
O APC é composto das seguintes funções:
●apc_add – Armazena variável no cache
●apc_cache_info - Retorna dados armazenados pelo APC
●apc_clear_cache – Limpa todo o cache
●apc_define_constants – Define constantes para uso posterior
●apc_delete – Remove uma variável guardada no cache
●apc_fetch – Retorna variável gravaa no cache
●apc_load_constants – Carrega um conjunto de constantes do cache
●apc_sma_info – Retorna informações da memória compartilhada
●apc_store – Armazena uma variável no cache
Exemplo:
Mesmo website usado anteriormente.
15. Entendendo os conceitos de caching em PHP
Outras alternativas
● PHP Extension and Application Repository
– PEAR_Cache
– PEAR_Cache_Lite
● Zend_Cache
– Simples Exemplo
16. Entendendo os conceitos de caching em PHP
Outras alternativas
<?php
$frontendOptions = array(
'lifetime' => 30, // tempo de vida do cache
'automatic_serialization' => false // valor default
);
$backendOptions = array('cache_dir' => './tmp/');
$cache = Zend_Cache::factory('Output', 'File', $frontendOptions, $backendOptions);
if(!$cache->start('mypage')) {
echo 'Olá mundo! ';
echo 'Foi criado o cache';
$cache->end(); // Salva o cache e manda pro browser
}
echo 'Não foi criado cache';
17. Entendendo os conceitos de caching em PHP
Outras alternativas
● eAccelerator - http://eaccelerator.net/
● Zend Optimizer - http://www.zend.com
● ionCube PHP Accelerator - http://www.ioncube.com