Olá pessoal,

hoje vou falar sobre ambiente de desenvolvimento para quem trabalha com Magento 2. O principal problema encontrado por nós é a performance abaixo da média quando estamos trabalhando em um ambiente local.

Há um tempo atrás a Magento disponibilizou o DevBox (beta) que era uma container Docker que trazia todos os serviços exigidos para que você pudesse executar sua docker em sua máquina. Mas essa imagem foi descontinuada em não mais suportada.

Muita gente ainda utilizad serviços como Wampp, XAMPP, MAMP que até funcionam legal para algumas aplicações PHP, mas no caso do Magento 2 precisamos de alguns plugins específicos e configurações que nos façam performar nosso ambiente de maneira veloz.

Eu já passei por MAMP, Docker, Vagrant e alguns outros, e baseando nas minhas experiências hoje venho trazer o que acredito que seja o melhor pra cada tipo de sistema.

Alguns fatores também que levei em conta em minha anáise são questões como servidor de email e Xdebug (indispensável) que nos ajudam a testar em nosso ambiente local.

Então vamos lá.

 

Linux & Windows

No caso de quem utiliza um dos dois sistemas operacionais eu certamente recomendaria usar Docker. Pra quem não sabe Docker é uma tecnologia que permite virtualizar containers semelhante a virtualização comum que você já deve conhecer, mas o Docker não exige um outro SO na container que está em execução, é utilizado o SO hospedeiro. Se você quiser dar uma estudada sobre Docker e o que é você pode ver neste link.

Eu já utilizei algumas imagens prontas, você também pode montar a sua se preferir, mas a que eu mais utilizei e recomendo é a desenvolvida pelo Rafael Correa Gomes (https://github.com/clean-docker/Magento2). Essa imagem traz um ambiente completo com servidor de email e o Xdebug configurados, e pra quem não é familiar com Docker esta imagem traz scripts que automatizam algumas das tarefas.

Nesta imagem é utilizado o serviço de docker-sync que mantem um sincronização entre os arquivos da maquina hospedeira e a container, e a performance desta imagem é muito boa.

Para instalar e começar a usar esta imagem Docker é só acessar o link do repositório (acima) e seguir os passos nas instruções.

O grande problema para mim ao utilizar Docker é que você terá que utilizar containers diferentes para cada projeto, e como eles utilizam a mesma porta você não pode inicializar mais de um projeto por vez. Eu normalmente trabalho em 3 ou mais projetos por dia, então isso acaba atrapalhando um pouco meu trabalho. Isso é uma disvantagem que é muito bem coberta pela ferramenta que discutirei a seguir.

Mac OSX

Para usuários do Mac há a possibilidade de usar Docker, e inclusive a imagem que referi anteriormente. Mas há um outro recurso muito bacana e que descobri a pouco tempo, o Valet+. O Valet+ é um fork do Laravel Valet (um ambiente focado ao desenvolvimento PHP com o framework Laravel) que automatiza seu ambiente para rodar Magento 2.

O valet+ configura sua máquina para rodar o NGNIX em background e permite de maneira muito fácil adicionar/remover recursos, trocar versões de PHP, habilitar desabilitar Xdebug, Redis, ElasticSearch, enfim, uma infinidade de recursos.

A instalação é bem tranquila e realizar todas essas alterações no ambiente é muito fácil, tem hora que parece até mentira hahaha

E o melhor de tudo, sua performance é incrível! Comparando com o Docker que usa anteriormente os dois estão praticamente performando de maneira igual.

Três recursos que achei sensacionais no Valet+ e me fizeram trocar Docker por ele. Primeiro é que você define uma pasta onde o Valet+ irá maperar as subpastas e considerá-las como websites. Então por exemplo você possui um diretório chamado “websites” e dentro dele você tem o diretório “site1”. Ao definir “websites” como o diretório raíz você pode acessar o website1 como webstei1.test, ele é automaticamente mapeado pelo Valet+.

O segundo deles é em relação a trocar versões do PHP. Algumas vezes possuímos projetos rodando em servidores com diferentes versões de PHP, e queremos utilizar a mesma versão em nosso ambiente para simular um ambiente igual ao do projeto. Para trocar a versão do PHP no Valet+ você deve somente rodar o comando “valet use 5.6” por exemplo para PHP 5.6, ou “valet use 7.1” para PHP 7.1. Isso é sensacional!

E o terceiro e último recurso muito bacana é que você pode usar o MariaDB ao invés do MySQL, proporcionando um ambiente muito semelhante ao utilizado em diversas hospedagens.

Para instalação e saber como usar o Valet+ e seus recursos é só acessar o repositório do projeto em https://github.com/weprovide/valet-plus

Uma das grandes vantagens pra mim é pode no Valet+ rodar vários projetos ao mesmo tempo, o que não era possível utilizando Docker.

 

Então fica a dica pessoal, tanto com o Docker quanto pro Valet+ você pode configurar um ambiente de desenvolvimento que performe de maneira rápida e com todos os recursos necessários para o seu dia a dia de desenvolvedor.

Grande abraço!

Ambiente de desenvolvimento para M2

Igor Ludgero


PHP & Magento Developer from Brazil.


Post navigation


Leave a Reply

Your email address will not be published. Required fields are marked *

Pin It on Pinterest