Para quem já acompanha ou acompanhou meu jeito de fazer posts sabe que gosto bastante de trazer conteúdos para o medium dos quais passei por alguma experiência ou ia passar, e este aqui não será diferente não! Desta vez quero fazer alguns post
s sobre um teste que fiz em uma empresa, a Send4 da qual tinha uma proposta onde era necessário a construção de uma aplicação em framework** php Laravel *que realizasse um *CRUD através do uso de APIs com recursos como validações e um esquema simples de tabelas.
Bom agora como já temos um overview da proposta, quero comentar que nesta proposta abordei bastante coisas legais como docker, docker-compose, migrations, factory e testes unitários porem vou abordar poucas coisas por vez… assim teremos posts diretos e bem segmentados/estruturados, ok?
Primeiro ponto?
A proposta pede a inicialmente que o projeto seja feito em Laravel, ok! Porem para quem conhece um pouco mais esse maravilhoso framework sabe que o Laravel seria um dos pacotes mais completos, onde temos um arsenal de plugins que vem juntos neste pacote como por exemplo o **blade** para a construção de interfaces, as famosas **views. *Como a intensão é um serviço de APIs, podemos e consequentemente não usaremos o blade assim como outros recursos desta versão, podemos optar por algo mais compacto como o tão querido **Lumen*
Lumen - PHP Micro-Framework By Laravel
Ok, vamos mostrar performance nesse teste galera!
Lumen como comentado tem muitaaas coisas a menos no fator libs do que o pacote tradicional Laravel, então a melhor opção é sim, utilizar ele diante do cenário.
Ambiente de desenvolvimento
Comentei logo no inicio do post, que apliquei alguns conceitos bônus na proposta para mostrar eficiência, que tal hehehe
Alguns desses conhecimentos foi algumas automatizações por parte do ambiente de desenvolvimento com **docker** e **docker-compose** para subir todo ambiente de maneira mais rápida e pratica alem de ficar muito massa!
Para quem sabe um pouco de docker fica mais fácil essas próximas etapas e para quem não sabe, já te deixo com a faca e o queijo na mão com esses post`s complementares que fiz aqui
Docker — 5 tópicos para iniciar o mais rápido possível
Docker — II — 5 tópicos para iniciar o mais rápido possível
PS: Não sou expert em docker, mas eu diria que sei me virar
Subindo containers
Agora vamos começar de fato a ver códigos por aqui e mexer no nosso projeto, certo?
Com seu docker rodando!
Aaah vou começar a usar prints das minhas pastas, então se em algum momento você notar algum arquivo a mais que eu não comentei, foi por isso e que ainda não chegamos na parte que eu falo do tal outro arquivo.
Criei um arquivo chamado *docker-compose.yml *com o seguinte conteúdo
https://gist.githubusercontent.com/henriqueweiand/bbcdfed9594ced7cc7107278443846fb/raw/e8b3ffff73bb575ff72600423fa8a651469d71c3/docker-compose.yml
Fiz a criação de três services, vulgo containers onde um é nosso banco de dados MySql, outro o Nginx e mais um que é nosso php, para alguns fiz a utilização de uma imagem "buildada" na hora, elas podem ser consultadas:
henriqueweiand/test-send4-lumen-crud
E sim, este link acima é o repositório do projeto finalizado ;)
Detalhando mais alguns pontos do docker-compose, fiz o mapeamento de algumas pastas com a option volumes assim como o mapeamento de portas e links entre as imagens e por ultimo e bem importante, a imagem do mysql coloquei duas opções para em envieonment que são
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: lumen
Essas opções são importantes neste contexto da proposta pois assim ao subir o mysql a imagem automaticamente cria uma base de dados com o nome lumen, onde conseguimos posteriormente rodar as migrations assim como ter uma senha default para nosso .env
Não vou falar de tudo sobre o docker-compose.yml pois se não nosso post foge um pouco da ideia inicial, mas como já comentei acima, temos links complementares pare reforço dos conteúdos abordados
Colocando para rodar
Chega de bla…bla…bla e vamos mostrar nossa criação rodando, então na pasta do docker-compose.yml execute o seguinte comando
docker-compose up --build -d
e temos o seguinte resultado
Não se assuste se demorar a rodar na sua maquina, pois aqui esta tudo meio que no cache já
Encerrando por hoje! Sim, falei de Laravel e lumen mas de fato não vimos nenhum código dele até então kkkk, mas não se preocupe que ainda vem alguns post`s na sequencia… Aqui trouxe mais uma intro sobre o que vamos ver e sobre o ambiente para o start tão esperado, certo?
Mas para quem quer ver o resultado final, pode ver o projeto na integra no repositório e rodar para ver que massa ficou
henriqueweiand/test-send4-lumen-crud
Até a próxima!
Next post
https://dev.to/henriqueweiand/lumen-instalando-atraves-do-docker-486c
Top comments (0)