Melhorando o desempenho com o uso de Cache

Antigamente os sites eram mais estáticos, poucos deles apresentavam conteúdo dinâmico vindo de um banco de dados.

Mas hoje, é dificil ver um site estático e com isso a preocupação com o desempenho que antes era um luxo hoje é um requisito muito importante.

Pensando nisso, foram criados vários scripts de cache e o que vou apresentar hoje é o Cache Lite (PHP).

Download do Cache Lite

 <?php

// Inclui a classe Cache Lite
require_once("Lite.php");

// Seta um nome para o cache
$id = "nosso_cache";

// Seta as configurações
$options = array(
cacheDir" => "cache/",
"lifeTime" => 50
);

// Instancia o objeto Cache Lite
$objCache = new Cache_Lite($options);

// Teste se já existe um Cache válido
if ($quote = $objCache->get($id))
{
// Se existe ele exibe o conteudo que estava no cache
echo $quote;

// Adiciona no fim do conteúdo um indicador que veio do cache (só para exemplo)
echo " [cached]";
}
else
{
// Se ainda não existe um cache para esse conteudo, devemos criar o conteúdo, exibi-lo e depois armazena-lo no cache para que a próxima consulta não seja criada e sim retornada do cache

//Criamos o resultado
$quote = "Aprendendo como utilizar o cache";

//Exibimos o resultado
echo $quote;

//Armazenamos no cache
$objCache->save($quote, $id);
}

?> 

O resultado se o cache não existir seria:

Aprendendo como utilizar o cache

E se ele existir seria

Aprendendo como utilizar o cache [cached]

Dessa forma, ele só criará o resultado final se ainda não existir em cache e também se não estiver com a validade vencida. Leia sobre o lifetime na legenda no final do artigo.

Mas esse exemplo foi de uma simples frase, e como seria para um conteúdo vindo do banco de dados?

Simples:

<?php

// Inclui a classe Cache Lite
require_once("Lite.php");

// Seta um nome para o cache
$id = "nosso_cache";

// Seta as configurações
$options = array(
cacheDir" => "cache/",
"lifeTime" => 50
);

// Instancia o objeto Cache Lite
$objCache = new Cache_Lite($options);

// Teste se já existe um Cache válido
if ($quote = $objCache->get($id))
{
// Se existe ele exibe o conteudo que estava no cache
echo $quote;

// Adiciona no fim do conteúdo um indicador que veio do cache (só para exemplo)
echo " [cached]";
}
else
{
//esta função vai armazenar o resultado que vai pra tela do usuário
ob_start();

?>
<html>
<head></head>
<body>
Aprendendo como utilizar o <i>cache</i>
</body>
</html>
<?php

// terminou de gerar a página

// obtem o conteúdo que foi armazenado
$conteudo = ob_get_contents();

// salva o conteudo
$objCache->save($conteudo, $id);

// exibe o conteudo na tela do usuário
ob_end_flush();
}

?>

Viu  como é simples?

Legenda:

  • cacheDir :: pasta onde serão armazenados os arquivos gerados do cache
  • lifetime :: tempo de vida do arquivo de cache em segundos. É necessário para que quando você pergunte se existe um cache válido ele retorne falso quando não existir o arquivo e também quando existir, porém com a validade vencida
  • $id :: utilizei essa variável para armazenar o nome do arquivo do cache. É interessante utilizar essa função em conjunto com a md5() para que o nome do arquivo não contenha caracteres inválidos como a interrogação ? ou barras / que são normais em urls.

Algum erro que eu tenha cometido ou uma sugestão de melhoria avise pelo comentário ok?

Abraços!

Reiniciando o som do Ubuntu sem reiniciar o sistema

As vezes o som do meu Ubuntu pára de funcionar e só volta quando eu reinicio.

Mas isso era antes de eu descobrir esse comando:

sudo alsa force-reload

Execute este comando no seu terminal que o som do seu Ubuntu voltará a funcionar num passe de mágicas.

Migrando o Magento para outro servidor

Diferente do que muitos pensam migrar o Magento é bem tranquilo. Você só precisa se preocupar com algumas coisas.

 

Passos:

  • Preparando os arquivos para Upload

Extraia uma cópia nova do seu Magento em uma pasta, e depois adicione os arquivos dos seus módulos adicionais e traduções, exceto os instalados pelo Magento Connect.

Por exemplo, modulo de pagamento do pagseguro, tema e a tradução para o português do Brasil.

Se você instalou um plugin adicional como um lightbox pelo Magento Connect você deverá instalar de novo quando o Magento estiver online, se fizer upload dele poderá dar problema.

No final você terá: Magento + tradução + módulo de pagamento pagseguro + tema, vamos chamar esse pacote de pacote de upload.

Eu recomendo que você compacte esses arquivos de preferência com o tar.bz2 que pode ser descompactado pelo painel da sua hospedagem.

 

  • Preparando o banco de dados

A parte do banco de dados será uma surpresa pra você, pois é mais fácil do que você imagina.

Simplesmente faça uma exporte o seu banco de dados local completo (dados + estrutura).

Eu não aconcelho compactar ele, pode dar erro de codificação.

Terminamos com o banco de dados.

 

  • Começando a instalação

No seu novo servidor siga esses passos:

  1. Faça upload dos seu pacote de upload e descompacte caso tenha compactado
  2. Crie um banco de dados para o Magento, um usuário com login e senha e relacione esse usuário ao banco de dados
  3. Acesse o banco de dados e importe os dados do seu Magento que você exportou logo acima
  4. Agora acesse o endereço do Magento para começar a instalação
  5. Não se esqueça de dar permissão de escrita nas pastas que o Magento pede
  6. Siga os passos da instalação como de costume e quando pedir a chave de criptografia informe a mesma que você salvou quando instalou o Magento pela primeira vez

 

  • Terminando a migração

Agora você já tem o Magento migrado e funcionando com seu banco de dados completo.

O que falta agora são poucas coisas.

  1. Instale os plugins que você havia instalado no seu Magento local pelo Magento Connect
  2. Faça upload do conteudo da pasta media do seu magento local para o magento online, pode compactar da mesma forma se preferir. A pasta media é responsável pelas fotos dos produtos
  3. Faça o mesmo com a pasta skin sem preocupações. A pasta skin é responsável pelas modificações na aparência do Magento
  4. Agora é a hora de upar suas modificações da pasta app. Nessa hora eu recomendo que você só faça upload dos arquivos que você modificou. Tome cuidado com a pasta app/etc e a app/core, se fizer o upload completo dessas pastas é bem provavel que seu Magento não funcione mais.

 

Pronto, você migrou com sucesso o seu magento.

Todas as modificações que você havia feito no painel administrativo, como configurar formas de pagamento, páginas cms, catalogos e produtos estarão todos na sua loja que agora é online.

Não atropele os passos, faça exatamente como eu fiz aqui, pois eu fiz desse jeito e deu certo pra mim então dará para você também.

Boa sorte!

Quantidade de novos produtos na home

Uma das minhas primeiras dores de cabeça com essa primeira loja virtual que estou montando foi como alterar a quantidade de produtos novos exibidos na home.

Para isso abra o arquivo: app/code/core/Mage/Catalog/Block/Product/New.php

E altere a constante abaixo para o valor que preferir.

const DEFAULT_PRODUCTS_COUNT = 5;

    É simples assim.

    Exibindo produtos na home do Magento

    Tenho certeza que a primeira coisa que você quis foi exibir produtos na home do Magento.

    Para isso basta ir em: admin>cms>páginas>home

    E em conteúdo adicionar:

    {{block type="catalog/product_new" name="home.catalog.product.new" alias="product_homepage" template="catalog/product/new.phtml"}}
    

    ou

    {{block type="catalog/product_list" name="home.catalog.product.list" alias="products_homepage" template="catalog/product/list.phtml"}}
    

    ou

    {{block type="catalog/product_list" name="home.catalog.product.list" alias="products_homepage" category_id="3" template="catalog/product/list.phtml"}}
    

    Esses três código fazem respectivamente:

    • Exibe os novos produtos, aqueles que você marca como novos dentro de uma determinada data.
    • Exibe uma lista com todos os produtos.
    • Exibe uma lista dos produtos de uma determinada categoria, neste caso a categoria de id 3.

    Executando código PHP em uma página CMS no Magento

    Este tutorial tem como objetivo ensinar de forma fácil como utilizar uma página phtml no seu magento para que você possa fazer suas próprias programações nele sem nenhuma gambiarra.

    Vantagens:

    • Um .phtml aceita programação PHP
    • Aceita também funções nativas do Magento

    Compatibilidade:

    • Todas as versões

    Passos:

    1 – Entre na administração do magento e acesse:

    • Sistema > CMS > Páginas

    2 – Crie uma nova página clicando em Criar Página:

    3 – Digite as informações necessárias na primeira etapa (Informações da Página)

    4 – Navege até Conteudo. Em Conteúdo coloque o seguinte código:

    {{block type="catalog/product_new" name="home.catalog.product.new" alias="product_homepage" template="cms/suapagina.phtml"}}
    

    Obs.: Não altere quaisquer informações no código ou poderá não funcionar. Mude apenas o nome do arquivo (suapagina).

    5 – O arquivo deve estar em:

    • app/design/frontend/base/default/template/cms/suapagina.phtml

    6 – Para acessar a página você deve digitar o endereço do site + o que você colocou em Nome na URL lá na primeira etapa.

    Caso tenha colocado algo como minha-pagina então você teria que acessar simplesmente:

    • www.seusite.com.br/pastadomagento/sua-pagina/

    ou (caso você não configurou seu htaccess)

    • www.seusite.com.br/pastadomagento/index.php/sua-pagina/

    ou (caso sua loja seja a raiz do site)

    • www.seusite.com.br/sua-pagina/

    7 – Onde colocar os códigos PHP?

    No arquivo .phtml que você criou.