Projeto de Estágio Doutbox: tutorial laravel pt. 1
Neste artigo, explico como funciona o estágio aqui na Doutbox e, além disso, compartilho a primeira parte do meu projeto como estagiário. Confira!
Como funciona o estágio na Doutbox?
Tendo essa visão de longo prazo, os estagiários passam por um treinamento antes de entrar diretamente em contato com o código de produção, tendo em vista o pouco conhecimento técnico sobre, e também para evitar que o aprendizado seja sob pressão.
Dessa forma, é aplicado o Programa de Estágio da Doutbox, no qual o estagiário entra na empresa e é recepcionado pelo time, é incluído nos ritos e vai aprendendo um pouco da cultura da empresa.
Em seguida, ele vai executar as atividades, nas quais ele irá aprender bem os fundamentos técnicos que os nossos desenvolvedores usam como base para partir do júnior. •
Nesse período que dura em torno de três meses, ele vai fazer essas atividades e apresentá-las para o time, justamente para ter o feedback de outros desenvolvedores, tudo isso construído e guiado com o auxílio dos DEVs.
Quando ele passa a possuir um certo nível de maturidade, o mesmo é incluído em pequenas tarefas de baixa complexidade com o time, com a finalidade de gerar mais entrosamento e, entender como funciona uma experiência dentro de um projeto real.
Conforme ele avança e passa a ter mais maturidade para executar tarefas de média complexidade, até que chega o momento no qual ele se torna apto para ser contratado pela Doutbox.
A seguir você poderá ler a primeira parte do meu projeto de estágio, realizado aqui na Doutbox. Confira!
1. INTRODUÇÃO
1.1 Arquitetura de Projetos
Entender o escopo do projeto e definir um padrão para ele é muito importante para o projeto seguir de acordo com o que o cliente necessita. O projeto deve abranger áreas como: Estratégia, Gerencial e Operacional para que o projeto não só seja feito, mas que ele esteja de acordo com as necessidades do cliente, e seja tanto funcional quanto viável para o desenvolvimento e realização do projeto.
1.2 MVC (Model-View-Controller)
Divide-se o projeto em três camadas bem simples: Model, View e Controller e, elas executam exatamente o que foi definido para elas.
Controller: interpreta as entradas do que o usuário faz na tela e mapeia as entradas em forma de comandos que serão enviados para o Model e para a View para que as alterações necessárias sejam efetuadas.
Model: gerencia os elementos dos dados e responde as requests feitas pelo usuário sobre os dados e as instruções para mudá-las de estado. O Model é a principal estrutura computacional da arquitetura pois ele sabe exatamente o que o aplicativo quer fazer, e é ele que arquiteta o problema a ser resolvido.
View: que gerencia o display mostrando os dados para o usuário mesclando textos e elementos gráficos, ela apenas recebe as informações tanto do controller quanto do model e não tem nenhuma informação sobre o que a aplicação está fazendo, a view também manda informações para eles.
1.3 O Framework
Características: O laravel é um Framework PHP, que é baseado na arquitetura MVC, além disso utiliza como um dos principais recursos um sistema modular para o gerenciamento de dependências, diferentes formas de conexão e acesso a banco de dados relacionais, um motor próprio de templates para criação de interfaces, que é o blade.
Vantagens: com muito pouco pode-se criar uma conexão com banco de dados, já vem com recursos próprios muito eficazes como a parte de registro e login já configurados e de forma que a alteração é bem simples, também fornece recursos de fácil entendimento como o artisan, blade e composer.
Concorrentes: Symfony e Codegniter.
1.4 Instalação
Primeiro instalei o composer, com os seguintes comandos:
Depois de instalar o composer criei um projeto em laravel:
Figura 1: terminal para criar primeiro projeto em laravel
Depois de criado, o coloquei para rodar com o artisan:
Figura 2: terminal para rodar o primeiro projeto
Projeto teste rodando:
Figura 3: projeto teste rodando na web
1.5 Estrutura
Tarefa: Descrever a estrutura do framework e suas respectivas pastas e funcionalidades.
App: na pasta app são encontrados a maioria dos códigos de controle como o controller, e as rotas.
Bootstrap: a biblioteca bootstrap já vem como padrão em laravel, que é basicamente uma ferramenta de estilização.
Config: vem com as configurações de caminho e conexões, o maior exemplo é o database.php que se conecta ao banco de dados, dentre outros vários.
Database: o database já vem com as migrations que são compostas pelas estruturas das tabelas do seu banco de dados e são como uma espécie de backup desta mesma estrutura.
Public: é o diretório público do projeto, é o diretório que será visto pelo servidor quando estiver ativo, será onde o servidor irá apontar para dar start no sistema, também será onde serão armazenados os arquivos públicos como downloads e imagens.
Resources: onde será encontrado a view e os arquivos que o farão funcionar, o view será a parte visível do projeto.
Storage: onde são armazenados os arquivos de cache, arquivos compilados e logs de sistema. tests: onde são feitos os testes de de unidade e integração do sistema.
Vendor: onde serão encontradas todas as dependências instaladas pelo composer, ela é uma pasta gitignore.
1.6 Configuração
Tarefa: Pesquisar e escrever sobre os arquivos de configurações, env entre outros.
App: cria o ambiente básico, adicionando o nome, modo de debug , cria a URL quando usado o artisan, específica a TimeZone para que as datas estejam certas quando o PHP date for usado. Auth: cria as autentificações default do sistema: ele cria o guard e o passwords.
Broadcasting: controla o broadcast default que vai ser utilizado pelo framework quando um evento precisar do broadcast, devem ser definidas as conexões de broadcast que serão usadas em conexões de broadcast por outros sistemas.
Cache: na cache deverá ser definido qual driver de cache será usado, pode-se ser usado database, Memcached, Redis ou DynamoDB.
Cors: o Cors(Cross-Origin Resource Sharing) permite o servidor indicar qualquer origin(domain, schema ou porta) para onde o navegador permite que que recursos sejam carregados.
Database: onde deve ser configurado todas as configurações com banco de dados e definir qual deve ser usada como default.
Filesystems: com esse arquivo deve ser configurado todos os discos do filesystem, cada disco representa um driver de armazenamento específico e uma localização de armazenamento. ele tem exemplos de configuração para todos os drivers suportados.
Hashing: utilizado para armazenar senhas de usuários, e tem como default o bcrypt, mas também suporta argon e argon2id.
Logging: onde é permitido configurar os canais de log da aplicação, como default o laravel usa o canal stack.
Mailer: controla o mailer default que será usado pela aplicação para enviar emails, é usado o smtp como default e tem suporte para sendmail, mailgun, ses, postmark, log e array.
Queue: neste arquivo encontram-se configurações de conexão para todos os drivers de queue que são incluídos com o framework, que inclui um banco de dados, Beanstalkd,
Amazon SQS, Redis e um driver síncrono que executa trabalhos imediatamente para usuários locais.
Services: esse arquivo armazena credenciais para serviços de terceiros, como o mailgun, postmark, AWS, entre outros, permitindo que os pacotes tenham um arquivo convencional para locar várias credenciais de serviço.
Sessions: cria a sessão default do usuário que irá armazenar as informações que serão usadas naquela sessão, como o login de usuário, por exemplo.
View: onde deve ser especificado uma array de caminhos que deverão ser checados para as views.
1.7 Artisan
Tarefa: Pesquisar e escrever principais comandos para o Artisan com o Laravel, limpar cache, gerar controllers
Clear-compiled: quando o framework é colocado em produção as classes principais são compiladas para que o carregamento seja mais rápido o comando clear-compiled limpa essa cache.
Down: irá deixar a aplicação fora de operação o comando php artisan down irá apresentar uma tela de manutenção padrão do laravel. Up: Assim que a manutenção estiver pronta, o comando php artisan up irá por ela de volta ao funcionamento.
Env: o comando php artisan env apresenta o ambiente de desenvolvimento que está sendo usado.
Optimize: irá realizar o cast no Framework para que ele tenha a melhor performance.
Help: lista todas as ajudas que o Framework pode realizar.
Tinker: permite interação com a aplicação, por exemplo, que seja inserido e algo no banco de dados.
Migrate: executa operações no banco de dados, cria tabelas, roda scripts de sql, etc.
List: lista todos comandos.
Make: permite a criação de de código fonte, por exemplo: php artisan make:controller: Cria uma nova classe controller; php artisan make:model: cria uma nova classe model; php Crtisan make:migration: cria um novo arquivo de migração;
Route: onde se criam as rotas, deixando a aplicação mais segura, alguns exemplos de rota são: php artisan route:cache: que cria um arquivo de rota cache de registro rápido; php artisan route:clear: remove o arquivo de rota cache; php artisan route:list: apresenta todas as rotas registradas na aplicação;
1.8 Composer
Tarefa: Pesquisar e escrever sobre as dependências e o composer
O composer permite que sejam instaladas as bibliotecas que o desenvolvedor quer usar no projeto e fazer a gestão, mas diferente de outras ferramentas como Yum ou Apt, o composer faz essa gestão por projeto instalando essas bibliotecas em um diretório dentro do projeto, inspirado no node npm e no ruby bundler.
Clique aqui para ler a parte 2 e seguir a leitura do meu projeto de estágio!
Fontes: www.devmedia.com.br / www.medium.com / www.asperbrothers.com / www.blog.schoolofnet.com / www.twilio.com