Laravel tem sido uma das estruturas PHP mais populares por muitos anos. É elegante, escalável, tornou-se uma das frameworks de fato para desenvolvedores e empresas que trabalham com PHP. Agora, o Laravel 9 está a caminho com uma tonelada de novas funcionalidades.

No passado, novos lançamentos têm acontecido a cada seis meses, resultando em uma quantidade razoável de perguntas, comentários duros e confusão sobre o novo processo de lançamento de Laravel. Com o lançamento do Laravel 9, a estrutura passou para um grande ciclo de lançamento de 12 meses e será lançado em janeiro de 2022.

Este artigo explora os principais recursos do Laravel 9. Além disso, também vamos detalhar como atualizar para o Laravel 9 e começar a desenvolver aplicações web.

O que é Laravel?

Laravel é um framework de aplicação web PHP de código aberto conhecido pela sua elegante sintaxe. É uma framework MVC para construir aplicações web simples a complexas usando a linguagem de programação PHP, e segue estritamente o padrão arquitetônico MVC (model-view-controller).

Se você ainda não usou Laravel, você pode ler sobre o queé Laravel e ver nossa lista de excelentes tutoriais sobre Laravel para começar.

Principais recursos do Laravel

Se você é novo neste quadro, nós cobrimos alguns dos melhores recursos do Laravel para lhe dar uma melhor compreensão.

O Laravel está em bolhas.
O Laravel está em bolhas. (Fonte de imagem: Moon Technolabs)

Eloquent ORM

O mapeador objeto-relacional (ORM) para Laravel é chamado Eloquent, e é uma das melhores características da Laravel, pois permite uma interação perfeita com o modelo de dados e banco de dados de escolha.

Com Eloquent, Laravel abstrai cada obstáculo envolvendo interação e escrita de consultas SQL complexas para acessar dados do seu banco de dados.

CLI Artisan

A CLI Artisan, ou linha de comando, é outro aspecto vital de Laravel. Com ele, você pode criar ou modificar qualquer parte de Laravel a partir da linha de comando, sem ter que navegar por pastas e arquivos.

Com Artisan, você pode até interagir com sua base de dados diretamente de sua linha de comando usando Laravel Tinker – tudo isso sem instalar um cliente de base de dados.

Arquitetura MVC

A natureza arquitetônica MVC de Laravel torna a linguagem relatável e adaptável porque segue um padrão de desenvolvimento web prevalecente com melhorias contínuas e significativas.

Laravel vai forçar você a aprender e entender o padrão arquitetônico MVC, popular e usado em quase todas as estruturas, como AdonisJS do JavaScript e ASP.NET MVC do C#.

Paginação automática

Se você já lutou com paginação em seus aplicativos, você entenderá o valor de ter sua paginação ordenada por um framework embutida.

Laravel resolve o problema da paginação através da construção de paginação automática que sai da caixa. Esta característica é uma das mais reconhecidas e elimina o trabalho envolvido na resolução do mistério da paginação por si mesmo.

Segurança

É essencial examinar as medidas de segurança de qualquer aplicação web que você esteja considerando usar, pois a falta de diligência pode resultar em perda de fundos ou mesmo seqüestro de seu site ou produto.

Laravel vem com muitas medidas de segurança em vigor devido à sua adesão aos princípios de segurança da OWASP. Desde o pedido de falsificação cruzada (CSRF) até a injeção SQL, a Laravel tem uma solução integrada para tudo isso.

O que esperar do Laravel 9

Programado para ser lançado até setembro de 2021, o Laravel 9 foi transferido para janeiro de 2022, tornando-o o primeiro lançamento de suporte de longo prazo (LTS) a ser introduzido após o ciclo de lançamento de 12 meses. Este atraso resulta de muitas razões, que incluem mas não se limitam às seguintes:

  1. Laravel usa variedades de projetos comunitários e cerca de nove bibliotecas Symfony. No entanto, a Symfony está planejando o lançamento da versão 6.0 até novembro de 2021. O atraso permitirá à equipe da Laravel incorporar esta nova versão da Symfony como parte do Laravel 9.
  2. O atraso dará tempo à equipe para monitorar como Laravel interage com a nova versão da Symfony por dois meses. Também lhes dá espaço para corrigir quaisquer alterações ou bugs de quebra.
  3. Finalmente, adiar o lançamento do Laravel 9 posiciona melhor a equipe Laravel para futuros lançamentos anuais. Isso dará à equipe dois meses de tempo de rampa adicional após os lançamentos da Symfony.

Por estas razões, você pode ver que o atraso no seu lançamento vale a pena esperar.

Novas funcionalidades no Laravel 9

Agora, vamos explorar a lista de funcionalidades e melhorias que você deve esperar no próximo grande lançamento de Laravel.

Requisitos Mínimos de PHP

Primeiro e mais importante, Laravel 9 requer o mais recente PHP 8 e PHPUnit 8 para testes. Isso porque o Laravel 9 vai usar o mais novo Symfony v6.0, que também requer o PHP 8.

O PHP 8 vem com melhorias e funcionalidades significativas, desde a compilação do JIT até a promoção de propriedades de construtores. Você pode explorar os diferentes benchmarks das versões do PHP e aprender como atualizar para o PHP 8 mais recente aqui no nosso blog.

Migração anónima de Stub

Laravel define para fazer da migração anônima de stub o comportamento padrão quando você executa o comando de migração popular:

php artisan make:migration

O recurso de migração anônima de stub foi lançado pela primeira vez no Laravel 8.37 para resolver este problema do Github. O problema é que múltiplas migrações com o mesmo nome de classe podem causar problemas ao tentar recriar o banco de dados a partir do zero. O novo recurso de migração de stub elimina colisões de nomes de classes de migração.

Do Laravel 8.37, o framework agora suporta arquivos de migração de classe anônima, e no Laravel 9, será o comportamento padrão.

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration {
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('people', function (Blueprint $table)
        {
            $table->string('first_name')->nullable();
        });
    }
};

Nova interface do Query Builder

Com o novo Laravel 9, o tipo hinting é altamente confiável para refatoração, análise estática e autocompletar código em seus IDEs. Isso se deve à falta de uma interface compartilhada ou herança entre Query\Builder, Eloquent\Builder e Eloquent\Relation. Ainda assim, com o Laravel 9, os desenvolvedores agora podem aproveitar a nova interface do construtor de consultas para a sugestão de tipo, refatoração e análise estática.

<?php

return Model::query()
	->whereNotExists(function($query) {
		// $query is a Query\Builder
	})
	->whereHas('relation', function($query) {
		// $query is an Eloquent\Builder
	})
	->with('relation', function($query) {
		// $query is an Eloquent\Relation
	});

Esta versão adicionou a nova Illuminate\Contracts\Database\QueryBuilder interface, bem como a Illuminate\Database\Eloquent\Concerns\DecoratesQueryBuilderque irá implementar a interface no lugar do método mágico __call .

Função string do PHP 8

Como Laravel 9 tem como alvo o PHP 8, Laravel fundiu este PR, sugerindo o uso das mais novas funções de string do PHP 8.

Estas funções incluem o uso de str_contains(), str_starts_with(), e str_ends_with() internamente na classe \Illuminate\Support\Str.

As características e melhorias do Laravel 9 listadas acima são um rápido olhar sobre o que está por vir. Com certeza vai trazer muitas correções de bugs, recursos e, é claro, muitas mudanças de quebra.

Como instalar o Laravel 9

Se você quiser começar a testar o Laravel 9 para fins de desenvolvimento e testes, você pode facilmente instalá-lo e executá-lo em sua máquina local.

Laravel 9 suporta PHP versão 8, então se você está planejando testá-lo, certifique-se de verificar sua versão PHP ou iniciar uma nova instalação.

Você pode descobrir mais detalhes sobre o lançamento através do Packagist.

Para instalar o Laravel 9 usando o compositor, execute o seguinte:

composer create-project --prefer-dist laravel/laravel laravel-9-dev dev-develop

O comando acima irá criar um novo projeto Laravel com o nome de projeto laravel-9-dev, usando o último Laravel 9, que, como sabemos, ainda está em desenvolvimento (daí o dev-develop).

O segundo método é usar o Laravel global CLI para criar um novo projeto Laravel e optar por criar seu novo projeto a partir do ramo de desenvolvimento.

Insira o seguinte comando para criar um novo projeto Laravel 9:

laravel new laravel-9-dev --dev

Agora que você instalou o Laravel 9, você pode entrar no novo diretório (laravel-dev) e executar o comando artesanal para verificar a versão:

cd laravel-9-dev
php artisan --version

Deve apresentar-lhe a versão de desenvolvimento do Laravel 9. Voilà!

Resumo

Laravel é uma estrutura PHP convincente que está ganhando mais atenção entre os desenvolvedores. Seu próximo grande lançamento (Laravel 9) é o primeiro após um ciclo de lançamento de 12 meses, e nós já podemos ver que ele irá introduzir novas funcionalidades “suculentas”.

É esta a lista completa de novas funcionalidades? Provavelmente não, pois a equipe do Laravel provavelmente anunciará novas funcionalidades antes da data de lançamento. Portanto, certifique-se de marcar este artigo nos favoritos, pois iremos cobri-los em futuras atualizações.

Agora é a sua vez! O que você mais anseia com Laravel 9? Informe-nos na seção de comentários!

Solomon Eseme

I am a Software Engineer and Content Creator who is geared toward building high-performing and innovative products following best practices and industry standards. I also love writing about it at Masteringbackend.com. Follow me on Twitter, LinkedIn, and About Me