Upload
adler-medrado
View
2.888
Download
0
Embed Size (px)
DESCRIPTION
Palestras ministrada no V Encontro Anual das LinuxChix. Entendendo os conceitos de Caching com PHP
Citation preview
Entendendo os conceitos de caching em PHP
Encontro Nacional Linuxchix BrasilBrasília – DF – Brasil
Setembro – 2007
Adler Medrado
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
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
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
Entendendo os conceitos de caching em PHP
Funcionamento do PHP sem uso de caching
INTERNETBROWSER SCRIPTPHP
FONTES DE DADOS
BANCODE
DADOS
DOCUMENTOXML
Entendendo os conceitos de caching em PHP
Funcionamento do PHP sem uso de caching
INTERNETBROWSER SCRIPT
PHP
FONTES DE DADOS
BANCODE
DADOS
DOCUMENTOXML
Cache
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
Entendendo os conceitos de caching em PHP
Caching de conteúdo – Sem cache
Entendendo os conceitos de caching em PHP
Caching de conteúdo – Com cache
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.
Entendendo os conceitos de caching em PHP
Caching de Recordset
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
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.
Entendendo os conceitos de caching em PHP
APC – Alternative PHP Cache
Entendendo os conceitos de caching em PHP
Outras alternativas
● PHP Extension and Application Repository
– PEAR_Cache– PEAR_Cache_Lite
● Zend_Cache
– Simples Exemplo
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';
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
Entendendo os conceitos de caching em PHP
Perguntas?
Entendendo os conceitos de caching em PHP
Obrigado!http://www.neshertech.nethttp://www.neshertech.net/adler