Laravel - Laravel

Laravel
Logotipo do Laravel
Desenvolvedor (s) Taylor Otwell
lançamento inicial Junho de 2011 ; 10 anos atrás ( 2011-06 )
Versão estável
8.16.1 / 2020-11-25 [±]
Repositório Repositório Laravel
Escrito em PHP
Modelo Framework da web
Licença Licença MIT
Local na rede Internet laravel .com

Laravel é um framework PHP de código aberto gratuito , criado por Taylor Otwell e destinado ao desenvolvimento de aplicações web seguindo o padrão arquitetônico model – view – controller (MVC) e baseado em Symfony . Algumas das características do Laravel são um sistema de empacotamento modular com um gerenciador de dependências dedicado, diferentes formas de acessar bancos de dados relacionais , utilitários que auxiliam na implantação e manutenção de aplicativos e sua orientação para o açúcar sintático .

O código-fonte do Laravel está hospedado no GitHub e licenciado sob os termos da Licença MIT .

História

Taylor Otwell criou o Laravel como uma tentativa de fornecer uma alternativa mais avançada ao framework CodeIgniter , que não fornecia certos recursos, como suporte embutido para autenticação e autorização do usuário . O primeiro lançamento beta do Laravel foi disponibilizado em 9 de junho de 2011, seguido pelo lançamento do Laravel 1 no final do mesmo mês. O Laravel 1 incluía suporte embutido para autenticação, localização , modelos , visualizações , sessões , roteamento e outros mecanismos, mas não tinha suporte para controladores que o impediam de ser um verdadeiro framework MVC .

O Laravel 2 foi lançado em setembro de 2011, trazendo diversas melhorias do autor e da comunidade. Os principais novos recursos incluíram o suporte para controladores, o que tornou o Laravel 2 uma estrutura totalmente compatível com MVC, suporte integrado para o princípio de inversão de controle (IoC) e um sistema de modelos chamado Blade . Como uma desvantagem, o suporte para pacotes de terceiros foi removido no Laravel 2.

O Laravel 3 foi lançado em fevereiro de 2012 com um conjunto de novos recursos, incluindo a interface de linha de comando cmd (CLI) chamada Artisan , suporte integrado para mais sistemas de gerenciamento de banco de dados, migrações de banco de dados como forma de controle de versão para layouts de banco de dados, suporte para tratamento de eventos e um sistema de empacotamento chamado Bundles . Um aumento na base de usuários e na popularidade do Laravel se alinhou com o lançamento do Laravel 3.

O Laravel 4, com o codinome Illuminate , foi lançado em maio de 2013. Foi feito como uma reescrita completa do framework Laravel, migrando seu layout para um conjunto de pacotes separados distribuídos através do Composer , que serve como um gerenciador de pacotes em nível de aplicativo . Tal layout melhorou a extensibilidade do Laravel 4, que foi emparelhado com seu cronograma de lançamento regular oficial abrangendo seis meses entre os lançamentos pontuais menores . Outros novos recursos no lançamento do Laravel 4 incluem propagação de banco de dados para a população inicial de bancos de dados, suporte para filas de mensagens , suporte integrado para envio de diferentes tipos de e-mail e suporte para exclusão retardada de registros de banco de dados chamada exclusão suave .

O 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. Novos recursos no lançamento do Laravel 5 incluem suporte para agendamento de tarefas executadas periodicamente por meio de um pacote chamado Scheduler , uma camada de abstração chamada Flysystem que permite o armazenamento remoto ser usado da mesma forma que os sistemas de arquivos locais , manipulação aprimorada de ativos de pacote através do Elixir , e autenticação simplificada tratada externamente por meio do pacote opcional Socialite . O Laravel 5 também introduziu uma nova estrutura de árvore de diretório interno para aplicativos desenvolvidos.

O Laravel 5.1, lançado em junho de 2015, foi o primeiro lançamento do Laravel a receber suporte de longo prazo (LTS). Novas versões LTS foram planejadas para uma a cada dois anos.

O Laravel 5.3 foi lançado em 23 de agosto de 2016. Os novos recursos do 5.3 são focados em melhorar a velocidade do desenvolvedor adicionando melhorias prontas para uso para tarefas comuns.

O Laravel 5.4 foi lançado em 24 de janeiro de 2017, com muitos novos recursos como Laravel Dusk, Laravel Mix, Blade Components e Slots, Markdown Emails, Automatic Facades, Route Improvements, Higher Order Messaging for Collections e muitos outros.

O Laravel 6 foi lançado em 3 de setembro de 2019, geração de código shift blueprint, introduzindo versões semânticas, compatibilidade com Laravel Vapor, respostas de autorização aprimoradas, middleware de trabalho aprimorado, coleções lazy e melhorias de subconsultas. O andaime frontend foi removido do pacote principal e movido para o pacote laravel / ui.

O Laravel 7 foi lançado em 3 de março de 2020, com novos recursos como Laravel Sanctum, Custom Eloquent Casts, Blade Component Tags, Fluent String Operations e Route Model Binding Improvement.

A última versão do Laravel é a versão 8, que foi lançada em 8 de setembro de 2020, com novos recursos como Laravel Jetstream, classes de fábrica de modelos, esmagamento de migração, Tailwind CSS para visualizações de paginação e outras melhorias de usabilidade.

Histórico de lançamento

Versões designadas LTS são suportadas com correções de bugs por 2 anos e correções de segurança por 3 anos. Outras versões são suportadas com correções de bugs por 6 meses e correções de segurança por 1 ano.

Versão Data de lançamento Versão PHP
Versão antiga, não mais mantida: 1.0 Junho de 2011
Versão antiga, não mais mantida: 2.0 Setembro de 2011
Versão antiga, não mais mantida: 3,0 22 de fevereiro de 2012
Versão antiga, não mais mantida: 3,1 27 de março de 2012
Versão antiga, não mais mantida: 3,2 22 de maio de 2012
Versão antiga, não mais mantida: 4,0 28 de maio de 2013 ≥ 5,3,0
Versão antiga, não mais mantida: 4,1 12 de dezembro de 2013 ≥ 5,3,0
Versão antiga, não mais mantida: 4,2 1 de junho de 2014 ≥ 5,4,0
Versão antiga, não mais mantida: 5.0 4 de fevereiro de 2015 ≥ 5,4,0
Versão antiga, não mais mantida: 5.1 LTS 9 de junho de 2015 ≥ 5,5,9
Versão antiga, não mais mantida: 5,2 21 de dezembro de 2015 ≥ 5,5,9
Versão antiga, não mais mantida: 5,3 23 de agosto de 2016 ≥ 5,6,4
Versão antiga, não mais mantida: 5,4 24 de janeiro de 2017 ≥ 5,6,4
Versão antiga, não mais mantida: 5,5 LTS 30 de agosto de 2017 ≥ 7.0.0
Versão antiga, não mais mantida: 5,6 7 de fevereiro de 2018 ≥ 7,1.3
Versão antiga, não mais mantida: 5,7 4 de setembro de 2018 ≥ 7,1.3
Versão antiga, não mais mantida: 5,8 26 de fevereiro de 2019 ≥ 7,1.3
Versão mais antiga, mas ainda mantida: 6 LTS 3 de setembro de 2019 ≥ 7,2,0 e ≤ 8,0
Versão antiga, não mais mantida: 7 3 de março de 2020 ≥ 7,2,5 e ≤ 8,0
Versão estável atual: 8 8 de setembro de 2020 ≥ 7,3,0 e ≤ 8,0
Versão futura: 9 LTS 25 de janeiro de 2022
Versão futura: 10 24 de janeiro de 2023
Versão futura: 11 Janeiro de 2024
Lenda: Versão antiga, não mantida Versão mais antiga, ainda mantida Versão estável atual Versão de visualização mais recente Lançamento futuro

Fonte: Laravel

Recursos

Os seguintes recursos servem como pontos-chave de design do Laravel (onde não especificamente observados, as descrições referem-se aos recursos do Laravel 3):

  • Os pacotes fornecem um sistema de empacotamento modular desde o lançamento do Laravel 3, com recursos agrupados já disponíveis para fácil adição aos aplicativos. Além disso, o Laravel 4 usa o Composer como um gerenciador de dependências para adicionar pacotes PHP agnósticos e específicos do Laravel disponíveis no repositório Packagist .
  • Eloquent ORM ( mapeamento objeto-relacional ) é uma implementação PHP avançada do padrão de registro ativo , fornecendo ao mesmo tempo métodos internos para impor restrições nos relacionamentos entre objetos de banco de dados . Seguindo o padrão de registro ativo, o Eloquent ORM apresenta tabelas de banco de dados como classes , com suas instâncias de objeto vinculadas a linhas de uma única tabela .
  • O Query builder , disponível desde o Laravel 3, fornece uma alternativa de acesso ao banco de dados mais direto ao Eloquent ORM. Em vez de exigir que as consultas SQL sejam escritas diretamente, o construtor de consultas do Laravel fornece um conjunto de classes e métodos capazes de construir consultas de forma programática. Também permite o armazenamento em cache selecionável dos resultados das consultas executadas.
  • A lógica do aplicativo é parte integrante dos aplicativos desenvolvidos, implementados usando controladores ou como parte das declarações de rota. A sintaxe usada para definir a lógica do aplicativo é semelhante à usada pelo framework Sinatra .
  • O roteamento reverso define uma relação entre os links e as rotas, possibilitando que alterações posteriores nas rotas sejam propagadas automaticamente para os links relevantes. Quando os links são criados usando nomes de rotas existentes, os identificadores uniformes de recursos (URIs) apropriados são criados automaticamente pelo Laravel.
  • Os controladores Restful fornecem uma maneira opcional de separar a lógica por trás do atendimento de solicitações HTTP GET e POST .
  • O carregamento automático de classes fornece carregamento automatizado de classes PHP sem a necessidade de manutenção manual dos caminhos de inclusão. O carregamento sob demanda evita a inclusão de componentes desnecessários, portanto, apenas os componentes realmente usados ​​são carregados.
  • Os compositores de visualização servem como unidades de código lógico personalizáveis ​​que podem ser executadas quando uma visualização é carregada.
  • O mecanismo de modelagem Blade combina um ou mais modelos com um modelo de dados para produzir visualizações resultantes, fazendo isso ao transpilar os modelos em código PHP em cache para melhorar o desempenho. O Blade também fornece um conjunto de suas próprias estruturas de controle , como instruções condicionais e loops , que são mapeados internamente para suas contrapartes PHP. Além disso, os serviços do Laravel podem ser chamados a partir de modelos Blade, e o próprio mecanismo de modelos pode ser estendido com diretivas personalizadas.
  • Os contêineres IoC possibilitam a geração de novos objetos seguindo o princípio de inversão de controle (IoC), no qual a estrutura chama o código específico do aplicativo ou da tarefa, com instanciação opcional e referência de novos objetos como singletons .
  • As migrações fornecem um sistema de controle de versão para esquemas de banco de dados , tornando possível associar mudanças na base de código do aplicativo e mudanças necessárias no layout do banco de dados. Como resultado, este recurso simplifica a implantação e atualização de aplicativos baseados no Laravel.
  • A propagação do banco de dados fornece uma maneira de preencher as tabelas de banco de dados com dados padrão selecionados que podem ser usados ​​para teste de aplicativoou executados como parte da configuração inicial do aplicativo.
  • O teste de unidade é fornecido como parte integrante do Laravel, que contém testes de unidade que detectam e evitam regressões no framework. Os testes de unidade podem ser executados por meio do utilitário de linha de comando artesanal fornecido.
  • A paginação automática simplifica a tarefa de implementação da paginação, substituindo as abordagens manuais usuais de implementação por métodos automatizados integrados ao Laravel.
  • Solicitação de formulário é um recurso do Laravel 5 que serve como base para validação de entrada de formulário por ouvintes de evento de ligação interna , resultando na chamada automática dos métodos de validação de formulário e geração do formulário real.
  • Homestead - uma máquina virtual Vagrant que fornece aos desenvolvedores Laravel todas as ferramentas necessárias para desenvolver o Laravel direto da caixa, incluindo Ubuntu , Gulp , Bower e outras ferramentas de desenvolvimento que são úteis no desenvolvimento de aplicações web em escala real.
  • Canvas - uma plataforma de publicação movida a Laravel que ajuda a visualizar tendências mensais, ver de onde os leitores estão vindo e a que horas do dia eles preferem ler o conteúdo. Recursos como: Estatísticas de Publicação, Redação sem distrações , Integração Unsplash , Dados Sociais Personalizados.
  • Lazy Collection - Este recurso do framework PHP Laravel 6, principalmente permite que você lide com cargas pesadas de dados, enquanto mantém o uso de memória baixo. Além disso, quando você muda de all (_ para cursor (), apenas um modelo expressivo é movido dentro da memória por vez, conforme cursor () usa a instância LazyCollection.

Pacotes próprios

Pacotes prontos para uso fornecidos pelo Laravel através do Composer e Packagist incluem o seguinte:

  • O Caixa , introduzido no Laravel 4.2, fornece uma interface para gerenciar os serviços de cobrança de assinatura fornecidos pelo Stripe , como o manuseio de cupons e a geração de faturas .
  • O Envoy , apresentado no Laravel 4.2, fornece uma sintaxe limpa e mínima para definir tarefas comuns que você executa em seus servidores remotos. Usando a sintaxe do estilo Blade, você pode facilmente configurar tarefas para implantação, comandos Artisan e muito mais.
  • Socialite , fornece mecanismos simplificados para autenticação com diferentes provedores de OAuth , incluindo Facebook , Twitter , Google , GitHub e Bitbucket .
  • O Passport , apresentado no Laravel 5.3, fornece uma implementação de servidor OAuth2 completa para seu aplicativo Laravel em questão de minutos.
  • O Scout , apresentado no Laravel 5.3, fornece uma solução simples baseada em driver para adicionar pesquisa de texto completo aos seus modelos do Eloquent.
  • O Dusk , introduzido no Laravel 5.4, fornece uma API de teste e automação de navegador expressiva e fácil de usar.
  • O Horizon , introduzido no Laravel 5.5, oferece um belo painel e uma configuração baseada em código para suas filas Redis com o Laravel .
  • Telescope , introduzido no Laravel 5.7, fornece uma visão sobre as solicitações que chegam em sua aplicação, exceções, entradas de log, consultas de banco de dados, trabalhos em fila, e-mail, notificações, operações de cache, tarefas agendadas, despejos de variáveis ​​e muito mais.
  • Sanctum , introduzido no Laravel 7.0, fornece um sistema de autenticação leve para SPAs (aplicativos de página única), aplicativos móveis e APIs simples baseadas em tokens. Primeiramente chamado de Laravel Airlock, foi renomeado devido a uma disputa de marca registrada em relação ao nome 'Airlock'.
  • O Jetstream , introduzido no Laravel 8.0, fornece um scaffold de aplicação para o Laravel. Este pacote efetivamente se baseia na ideia das ferramentas de interface do usuário construídas em aplicativos Laravel anteriores, permitindo ao usuário escolher entre duas opções, Livewire + Blade ou Inertia.js + Vue. Este pacote funciona com o Laravel Fortify. Houve alguma controvérsia com Taylor Otwell e usuários do Laravel logo após o lançamento do Laravel devido a alguns acreditarem que os scaffolds de aplicativos antigos estavam sendo preteridos em favor do Jetstream. Desde então, foi esclarecido que este não é o caso.
  • Fortify , introduzido no Laravel 8.0, fornecendo um scaffold de aplicação para o Laravel. O Fortify é usado para lidar com o gerenciamento de tarefas típicas do usuário, com base na autenticação típica para fornecer coisas como equipes e mecanismos de autenticação de dois fatores. O pacote funciona em conjunto com o Laravel Jetstream. O Fortify é um pouco baseado em recursos que foram originalmente criados para o Laravel Spark.
  • Breeze, Laravel Breeze é uma implementação simples e mínima de todos os recursos de autenticação do Laravel, incluindo login, registro, redefinição de senha, verificação de e-mail e confirmação de senha. A camada de visualização padrão do Laravel Breeze é composta de modelos Blade simples estilizados com CSS do Tailwind. O Breeze oferece um excelente ponto de partida para iniciar um novo aplicativo do Laravel.

A interface de linha de comando (CLI) do Laravel , chamada Artisan , foi inicialmente introduzida no Laravel 3 com um conjunto limitado de recursos. A migração posterior do Laravel para uma arquitetura baseada no Composer permitiu que o Artisan incorporasse diferentes componentes do framework Symfony , resultando na disponibilidade de recursos adicionais do Artisan no Laravel 4.

Os recursos do Artisan são mapeados para diferentes subcomandos do utilitário de linha de comando do Artisan , fornecendo funcionalidades que auxiliam no gerenciamento e construção de aplicativos baseados no Laravel. Os usos comuns do Artisan incluem o gerenciamento de migrações e propagação de banco de dados, publicação de ativos de pacote e geração de código clichê para novos controladores e migrações; o último libera o desenvolvedor de criar esqueletos de código adequados . A funcionalidade e os recursos do Artisan também podem ser expandidos através da implementação de novos comandos personalizados, que, por exemplo, podem ser usados ​​para automatizar tarefas recorrentes específicas do aplicativo.

Conferências

Taylor Otwell no 2013 US Laracon

Laracon é a conferência oficial do Laravel centrada no framework Laravel, cobrindo seu desenvolvimento, usos e tópicos relacionados ao desenvolvimento de software em geral . Laracon já aconteceu nos Estados Unidos , Europa e online no passado. Normalmente, a conferência acontece nos Estados Unidos e na Europa todos os anos. 2017 foi o primeiro ano em que o Laracon foi realizado apenas como um evento online. 2018 foi o primeiro ano em que uma Laracon foi realizada na Austrália. A cada ano, a conferência tem uma variedade diferente de patrocinadores e organizadores, mas Laravel, Laravel News e UserScape são geralmente os organizadores principais.

Enquanto as inúmeras conferências Laracon são oficialmente realizadas, uma série de outras conferências são realizadas sob o nome de Laravel Live. Atualmente, são realizadas anualmente as conferências Laravel Live UK e Laravel Live India. Embora não sejam administrados oficialmente, eles têm a permissão de Taylor Otwell para usar o nome Laravel.

Veja também

Referências

Leitura adicional

  • Laravel Design Patterns and Best Practices, Packt, ISBN  978-1783287987 , julho de 2014, por Arda Kılıçdağı e H. İbrahim Yilmaz

links externos