# Laravel

Laravel é um framework PHP livre e open-source criado por Taylor B. Otwell para o desenvolvimento de sistemas web que utilizam o padrão MVC (model, view, controller). Algumas características proeminentes do Laravel são sua sintaxe simples e concisa, um sistema modular com gerenciador de dependências dedicado, várias formas de acesso a banco de dados relacionais e vários utilitários indispensáveis no auxílio ao desenvolvimento e manutenção de sistemas.
De acordo com uma pesquisa feita em Março de 2015 com desenvolvedores, o Laravel foi listado como o framework PHP mais popular de 2015, seguido pelo Symfony2, Nette, CodeIgniter, Yii2 e outros. Em Agosto de 2015, o Laravel já era o principal framework de projetos PHP no GitHub.
Hoje, em 2024, o Laravel está consolidado no mercado e conta com quase 80 mil estrelas no GitHub. É um dos frameworks voltados para a web com maior número de adeptos e desenvolvedores satisfeitos.
Laravel foi desenvolvido sob o MIT License, tendo seu código-fonte hospedado no GitHub. Atualmente encontra-se na versão 11.

## História

Taylor Otwell criou o Laravel como uma tentativa de fornecer uma alternativa mais avançada para o framework CodeIgniter, que não fornecia certos recursos, como suporte integrado para autenticação e autorização de usuário.
A 1º versão do Laravel foi lançada em junho de 2011, ela incluía suporte à localização de linguagem, a models e views, sessões, rotas e outros mecanismos.
O suporte aos controllers foi adicionado na versão 2º versão, onde o Laravel se tornou um framework MVC completo. Foi lançado também um sistema de templates chamado Blade e o Laravel passou a implementar os princípios da Inversão de controle (Inversion of Control ou IoC, em inglês).
Laravel 3 foi lançado em Fevereiro de 2012 com diversas funcionalidades, incluindo uma interface de linha de comando (command-line interface ou CLI, em inglês) chamado de Artisan, suporte a diversos Sistema Gerenciador de Banco de Dados – SGBDs, as chamadas migrations como uma forma para controle de versão dos bancos de dados.
Laravel 5 foi lançado em Fevereiro de 2015 como resultado de mudanças internas que acabaram na renumeração do então futuro lançamento do Laravel 4.3. O Laravel 5 criou uma nova estrutura de arvore de diretório interna para o desenvolvimento de aplicações.
Laravel 6 foi lançado em 3 de setembro de 2019, trazendo compatibilidade com Laravel Vapor e novas funcionalidades como Versionamento Semântico, melhoria nas respostas de autorização, um novo recurso de middleware na classe Job – Job Middleware, as Lazy Collections, novos recursos de query "Eloquent" e o pacote Laravel UI.
Laravel 7 foi lançado em 3 marco de 2020, com nova funcionalidades como o Laravel Sanctum, Custom Eloquent Casts, melhoria nas Tags de componentes Blade, uma API mínima e expressiva em torno do cliente HTTP Guzzle. Melhoria na velocidade de cache da rota.
Laravel 8 foi lançado em 8 de setembro de 2020, com novas mudanças no esquema de versionamento do framework, agora os lançamentos primários serão a cada seis meses (Março e Setembro) enquanto versões secundárias ou patch de correção podem ser lançados frequentemente. A política de suporte também foi alterada, com a mudança o Laravel 6 passar a ser a versão LTS que contará com 2 anos de atualizações de novas funcionalidades e 3 anos de atualizações de segurança.
O Laravel 8 continuou as melhorias feitas na versão 7, suportando agora o Laravel JetStream, adicionando novas mudanças na classe Factory, melhoria na queue, criação de componentes dinâmicos do Blade, criação de um novo recurso chamado de Migration Squashing para melhor organização das Migrations, criação do "Job Batching" que permite uma forma mais fácil de executar trabalhos em lote, entre diversas outras funcionalidades
Laravel 9 foi lançado em 8 de fevereiro de 2022, trazendo uma mudança considerável no esquema de lançamento. A partir desta versão, o framework receberá uma versão a cada 1 ano. E com isso, cada versão terá suporte para correções de bugs por 18 meses, e correções de segurança por 2 anos. Deixando de lado a nomenclatura LTS.
O Laravel 9 trouxe diversas atualizações de pacotes da base do framework, como a troca do Swift Mailer, que não é mais mantido, para Symfony Mailer, atualização do Flysystem antes na versão 1, agora na versão mais atual (3). Também houve uma atualização no pacote Ignition, para a versão da Spatie.
Mas, mesmo com todas as novidades listadas acima, e muitas outras, o ponto chave é a versão do PHP que agora o mínimo é a versão 8.0.2 ou superior. Possibilitando o framework trazer diversas melhorias introduzidas nesta versão e posteriores. Inclusive Enums que não havia suporte nativo anteriormente. Apesar dessa funcionalidade só poder ser utilizada com a versão 8.1 do PHP.
Laravel 10 foi lançado em 14 de fevereiro de 2023. Esta versão atualizou completamente o esqueleto da aplicação e todos os stubs utilizados pelo framework para introduzir tipos de argumento e retorno em todas as assinaturas de método.
Além disso, houve diversas atualizações menores para produtividade, como novas funções str e to_route e maior suporte de Collections para IDEs. Nesta versão o PHP 8.1 ou superior é obrigatório.
Laravel 11, a versão mais recente até então, foi lançado em 12 de março de 2024. Nesta versão, a equipe trouxe uma estrutura de arquivos mais enxuta, removendo arquivos e diretórios desnecessários ao primeiro uso. Como por exemplo: remoção do diretório de middlewares, remoção de arquivos de configuração, remoção do arquivo de rotas para console, remoção do arquivo Http/Kernel entre outros. Não afetando o funcionamento padrão do framework, onde tudo funciona como sempre. Claro, permitindo traze-los de volta e personaliza-los quando necessário. Além de trazer novos comandos artisan para criação de classes, traits, interfaces e enums, além de novos comandos para API.
Para a versão 11, o PHP 8.2 ou superior é obrigatório. Acompanhando o ciclo de atualizações da linguagem, visto que já foi lançada a versão 8.3, é importante manter o tanto o framework quanto a linguagem atualizada.

#### Histórico de Versões

Versões nomeadas de LTS possuem suporte a longo prazo, incluindo 2 anos de atualizações para resolver Bugs e 3 anos de atualizações de segurança. As outras versões incluem atualizações de Bugs por seis meses e de atualizações de segurança por 1 ano.
A partir da versão 9, o framework passa a ter os lançamentos anuais, e com isso cada versão passa a ter suporte para correções de segurança por 2 anos, resultando no fim da nomenclatura LTS para o framework, pois todas as versões terão suporte de longo prazo.
| Versão | Data de Lançamento | Versão do PHP |
| Versão antiga, já não mantida: 1.0 | Junho 2011 | |
| Versão antiga, já não mantida: 2.0 | Setembro 2011 | |
| Versão antiga, já não mantida: 3.0 | 22 de Fevereiro 2012 | |
| Versão antiga, já não mantida: 3.1 | 27 de Março, 2012 | |
| Versão antiga, já não mantida: 3.2 | 22 de Maio, 2012 | |
| Versão antiga, já não mantida: 4.0 | 28 de Maio, 2013 | ≥ 5.3.0 |
| Versão antiga, já não mantida: 4.1 | 12 de Dezembro, 2013 | ≥ 5.3.0 |
| Versão antiga, já não mantida: 4.2 | 1 de Junho, 2014 | ≥ 5.4.0 |
| Versão antiga, já não mantida: 5.0 | 4 de Fevereiro, 2015 | ≥ 5.4.0 |
| Versão antiga, já não mantida: 5.1 LTS | 9 de julho, 2015 | ≥ 5.5.9 |
| Versão antiga, já não mantida: 5.2 | 21 de Dezembro, 2015 | ≥ 5.5.9 |
| Versão antiga, já não mantida: 5.3 | 23 de Agosto, 2016 | ≥ 5.6.4 |
| Versão antiga, já não mantida: 5.4 | 24 de Janeiro, 2017 | ≥ 5.6.4 |
| Versão antiga, já não mantida: 5.5 LTS | 30 de Agosto, 2017 | ≥ 7.0.0 |
| Versão antiga, já não mantida: 5.6 | 7 de Fevereiro, 2018 | ≥ 7.1.3 |
| Versão antiga, já não mantida: 5.7 | 4 de Setembro, 2018 | ≥ 7.1.3 |
| Versão antiga, já não mantida: 5.8 | 26 de Fevereiro, 2019 | ≥ 7.1.3 |
| Versão antiga, já não mantida: 6 LTS | 3 de Setembro, 2019 | ≥ 7.2.0 |
| Versão antiga, já não mantida: 7 | 3 de Março, 2020 | ≥ 7.2.5 |
| Versão antiga, já não mantida: 8 | 8 de Setembro, 2020 | ≥ 7.3.0 |
| Versão antiga, já não mantida: 9 | 8 de Fevereiro, 2022 | ≥ 8.0.2 |
| Versão mais antiga, ainda mantida: 10 | 14 de Fevereiro, 2023 | ≥ 8.1.0 |
| Versão estável atual: 11 | 12 de Março, 2024 | ≥ 8.2.0 |
| Legenda: | Versão antiga, não mantida | Versão mais antiga, ainda mantida | Versão estável atual | Versão de prévia mais recente | Lançamento futuro |

## Conferências

Laracon é a conferência principal do Framework Laravel, nesse evento são discutidos o que a de mais novo no Framework, casos de uso, tópicos de programação em geral e softwares relacionados ao ecossistema do Laravel. Laracon acontece todo o ano nos Estados Unidos, Europa e de forma online para todo o restante Mundo. 2017 foi o primeiro ano em que a Laracon foi realizada apenas como evento online. A cada ano o evento tem novos organizadores e patrocinadores, sendo o Laravel News um dos principais organizadores.
Além dos Eventos Laracon que são organizados oficialmente pelos criadores do Laravel, existe ainda vários outros eventos que são realizados com o nome de Laravel Live. Atualmente são realizadas anualmente a Laravel Live UK e Laravel Live India. Embora não sejam oficialmente administrados eles têm a permissão do criador do Laravel Taylor Otwell para usar o nome Laravel.
A última Laracon realizada foi a versão US, sediada em Dallas, TX nos dias 27 e 28 de agosto de 2024. Esta conferência teve sua transmissão realizada ao vivo pelo canal oficial do Laravel no YouTube durante os dois dias de evento.