Cursos Magento

4 cuidados antes de instalar um módulo ou tema

,

22 de maio de 2018

Como saber se um módulo ou tema é “bom” antes de instalá-lo?

Nós desenvolvedores sempre buscamos a melhores práticas e a forma mais eficiente para criar nossas classes, módulos, temas e soluções em geral. No mundo Magento isso não é diferente.

Seguir as boas práticas de desenvolvimento de módulos pode evitar grandes dores de cabeça que nem sempre são visíveis no curto prazo, como mencionei no artigo sobre porque Magento não é a melhor plataforma de e-commerce.

Ao longo destes 7 anos com Magento começo a pensar que parte da má fama que ele pode ter em alguns cantos do planeta se devem à ingenuidade de pensar que seus milhares de módulos, extensões, e temas disponíveis por aí estão prontos para serem usados. E claro, que nem precisamos passar pelo nosso “ambiente de testes”. Podemos instalar direto em produção.

Não, não podemos!

Veja alguns sinais que podem indicar que um módulo ou tema Magento 1 está mal desenvolvido:

1. Sobrescreve o core do Magento

A primeira coisa que falo em todos os cursos é sobre não alterar arquivos do “core” do Magento. Se um módulo ou tema altera um arquivo ou template do core do Magento você terá problemas para atualizar sua loja, aplicar patches de segurança e pode ter problemas com futuros módulos que não tem como prever o que foi alterado pelo outro módulo.

Antes de instalar um novo módulo, verifique se ele sobrescreve, remove ou adiciona algum arquivo dentro das pastas app/code/core, js/mage ou lib/Magento.

Antes de instalar um novo tema, veja se ele sobrescreve ou remove (adicionar neste caso não tem problema) algum arquivo das pastas app/design/adminhtml/base/default, app/design/frontend/base/default, skin/frontend/base e skin/adminhtml/default.

2. Erros e notices

A segunda coisa que vejo ao testar um módulo de terceiros é se o mesmo possuí erros básicos que foram “varridos para baixo do tapete”. E isso é muito comum, mesmo em módulos e temas pagos. Habilite os logs do seu Magento. Após copiar o módulo no seu ambiente de desenvolvimento, ative o modo desenvolvedor* e execute seu Magento. Neste momento ele executará também os scripts de instalação do módulo.

Em paralelo a isso, observe os arquivos da pasta var/log. Você pode fazer isso com o comando tail -f var/log/*no seu terminal. Arquivos como exception.log e system.log podem trazer informações de erros e notices.

Navegue pelos recursos do seu módulo ou tema e veja se nenhum erro é exibido na tela ou nos logs.

Notices e erros podem ser ocultados fora do modo desenvolvedor, porém podem trazer comportamentos inesperados para seu módulo e até mesmo outras funcionalidades, além de indicar que o módulo pode não ter sido testado em alguns cenários.

Módulo porquinho

Erro que geralmente é varrido para baixo do tapete

* Confira a Aula 10 do curso gratuitoFerramentas e dicas matadoras para desenvolvimento Magento“.

3. Regras de negócio em arquivos de template

Alguns módulos implementam arquivos de template para serem exibidos em áreas específicas, ou até mesmo sobrescrever algum arquivo de template. Arquivos .phtml de módulos e temas devem estar localizados em app/design/frontend/base/default/ e app/design/adminhtml/[base|default]/default.

Estes arquivos geralmente contém HTML e um pouco de código <?php. No entanto, não devem conter instruções SQL, inserções de scripts externos, alterar dados em Models, sessions, ou nada que altere diretamente algum registro em suas tabelas, tampouco conter regras complexas de negócio.

Para isso existem Models, que devem ser chamados pela classe PHP que representa aquele bloco.

4. Criação e modificação de atributos

Muitos módulos fazem uso de scripts de setup, geralmente localizados na pasta /sql do módulo*. É altamente aconselhável que olhe o que está sendo feito nestes scripts de setup, pois uma vez que os mesmos forem executados, poderão manipular livremente suas tabelas, atributos e dados de qualquer entidade da loja.

Mais importante que saber se o script de setup foi bem desenvolvido ou não, é importante que saibamos o que ele irá fazer com nossa loja, quais atributos irá adicionar, quais tabelas irá modificar, que tipo de configuração poderá ser alterada com sua instalação. A maioria dos módulos não possuí instruções de desinstalação, portanto se precisarmos removê-lo em seguida, é altamente recomendável que saibamos o que precisamos remover ou modificar para termos nossa loja de volta sem ter que restaurar um backup completo.

Script de setup que remove a tabela api_user

Script de setup que remove a tabela api_user

Alguns módulos podem fazer alterações difíceis de serem revertidas, e algumas vezes impossíveis.

* Confira a Seção 8 do curso “Criação de Módulos e Desenvolvimento Backend para Magento” para ver como os scripts de instalação funcionam no Magento.

Conclusão

Há muitas outras formas de se obter resultados catastróficos com a instalação de temas e módulos em uma loja. Mesmo sabendo disso, boa parte dos lojistas que conheço não possuem ambiente de testes ou desenvolvimento nem sistema de versão.

Ter um ambiente de testes e seu histórico de mudanças guardado em um sistema de versionamento (ex.: git) é o mínimo que você deve ter para zelar pelo futuro de sua loja.

As dicas acima se baseiam apenas nos primeiros passos que eu sigo quando preciso avaliar a credibilidade ou qualidade de um módulo. Mesmo módulos pagos podem não ter sido bem desenvolvidos.

Ainda assim, um módulo mal desenvolvido ou com uma das características acima não precisa ser necessariamente descartado. Aqui no Magenteiro.com, fiz uso de alguns módulos e temas pagos, e praticamente todos eles possuíam um ou mais erros que precisaram ser corrigidos. Mesmo tendo que investir alguns dias para realizar todas as correções, eles valeram a pena.

Saber corrigir estes erros sem modificar os arquivos originais dos módulos e temas também é um ato consciente de bom desenvolvimento, pois você provavelmente terá menos dores de cabeça quando precisar atualizar um destes módulos para uma versão mais recente.

E para saber mais sobre Magento, e como desenvolver módulos e temas com segurança você já sabe né? É só clicar aqui. 🙂

Veja mais artigos parecidos na tag boas práticas. E confira as dicas exclusivas enviadas para minha lista vip. É só colocar o e-mail ali do lado.

Ricardo Martins

Desenvolvedor web há mais de 15 anos, desde 2011 totalmente especializado em Magento, ajudo na criação de conteúdo, e cursos online sobre Magento - hoje com mais de 7000 alunos de 97 países - e criador do módulo PagSeguro Transparente para Magento, usado em mais de 12 mil lojas.

Últimos posts por Ricardo Martins (exibir todos)

Comentários