Olá, meu caros! Esse é o primeiro post do blog e por isso nada mais justo do que começar com a minha framework preferida: o Laravel.



O Laravel é uma framework PHP escrita por Taylor Otwell, inspirada nas outras grandes frameworks do mercado, reunindo centenas de recursos úteis e comuns do dia-a-dia do desenvolvedor web.

Por isso, separei alguns bons motivos para que você dê uma chance ao Laravel em seus projetos e quem sabe começar a codar profissionalmente :P

Laravel é incrivelmente simples

Uma das principais características do Laravel é a sua sintaxe simples, arquitetura fácil de compreender e a capacidade de rodar em ambientes robustos e que exigem alta performance.

O Laravel segue o padrão Model-View-Controller, oferecendo uma série de recursos para facilitar o processo de criação dessas camadas, através do Artisan, a CLI do Laravel.

Eloquent ORM

O Laravel dispõe do Eloquent, a ORM nativa do Laravel, que oferece um novo modo de fazer consultas ao banco de dados de forma muito semântica e simples. Supondo que você queira saber as datas de publicação dos posts feito por um usuário específico, você poderia fazer algo como:

$data = Post::whereUserId($user_id)->get()->publish_date;

A partir dos Models, você pode definir relacionamentos 1-1, 1-n e n-n de forma muito simples. A relação User-Post poderia ser definida da seguinte forma:

// app/User.php
public function posts() {
     return $this->hasMany('App\Post');

Documentação decente

A documentação oficial do Laravel é muito agradável, clara e objetiva. Nada mais irritante do que precisar depender de vídeo-aulas de 40 minutos para conseguir rodar um "Hello world" e depois não passar disso sem precisar de um curso longo de n módulos para poder concluir um CRUD*.

Por isso, a documentação é clara e simples. Qualquer pessoa com o mínimo de conhecimento de PHP e MVC terá muita facilidade para brincar com o Laravel

* Existem excelentes cursos e vídeo-aulas de Laravel, mas me referi as linguagens e frameworks com curvas de aprendizados complexas e longas que são resolvidas somente se você recorre a um curso :)

Service Container e Injeção de Dependências

O Laravel possui um container de serviços muito fácil de ser utilizado que funciona de forma muito concisa. Basicamente você tem serviços e estes são registrados no Container. Dessa forma, você consegue centralizá-los, disponbilizar em outras partes da aplicação e consegue evitar a redundância de código.

Supondo que você tenha que emitir boletos de diversos bancos. Com Laravel, você disponibiliza a classe Boleto no container (através de um provedor de serviços) e essa classe poderá ter dependências (cliente de API, gerador de credenciais, etc) e poderá também ter classes filhas, como BoletoBradesco, BoletoInter, BoletoItau... 

Como a lógica da geração do boleto acontecerá no serviço, deixando a manutenção da sua aplicação muito mais simples

Presets de front-end

O Laravel oferece o Blade, uma engine de templates server-side, que conversa diretamente com as classes de View e Mail.

Além disso, o Laravel é muito amigo de frameworks front-end orientadas a componentes. Rodando alguns comandos, você consegue definir se usará o Blade, Vue.js, React ou Bootstrap:

php artisan preset react # prepara o ambiente para trabalhar com ReactJS
php artisan preset none # nenhuma

Caso prefira usar o Laravel Blade, é bom saber que a sintaxe é muito simples e elegante.

// resources/views/user.blade.php
@if($user->is_admin)
Seja bem vindo, {{ $user->name }}
@endif 

Tem muita coisa pronta

O Laravel dispõe de recursos nativos e também bibliotecas prontas para resolver diversos problemas que costumamos ter no dia-a-dia
  • Autenticação e CRUD de usuários
  • API RESTFul (inclusive, existem comandos que geram TODA a restrutura básica de um recurso REST)
  • Responses com json, html, xml, txt, etc
  • Proteção CORS
  • Proteção CSRF
  • Cache
  • Criptografia
  • Operações com arquivos
  • Mailing (com Mailgun, Mailchimp, Gmail, etc)
  • Eventos (integração real-time)
  • Linha de comando
  • Agendamento de tarefas
  • Testes unitários e de integração
  • Seeders e Migrations
  • Multilogin com Laravel Socialite
  • Compilador de SASS com Laravel Mix
  • Processamento de pagamentos com Laravel Cashier
  • Microframework de alta performance: Lumen

Tem uma comunidade incrível

Teve problema? A comunidade Laravel está no Stack Overflow, GitHub, Facebook, Slack, Telegram, Emails, Eventos, Meetups, Universidades e muitos outros canais. A comunidade é uma das maiores e mais ativas atualmente.

Além disso, tem o Laracasts, que é "tipo um Netflix" voltado aos Laradevs. Lá, além dos cursos e vídeos, tem uma comunidade muito ativa no fórum que está sempre respondendo e colaborando com outros devs.

Eu estou codando em Laravel dois projetos que fazem uso de quase todos os recursos acima: um serviço de streaming e um intermediador de pagamentos. Mas vou falar desses dois projetos mais para frente.

Se você gostou da ideia (ou não), por favor, deixe seu comentário! E se você já usa, comenta o que você está codando também :)
Ler mais