Introdução
Em 3 de março, a equipe do Laravel lançou oficialmente o Laravel 7.0. Conforme declarado na política de suporte do Laravel, esta é uma das principais atualizações. Embora esta versão não seja designada como LTS, ela ainda apresenta muitos novos recursos e correções. A atualização fornecerá correções de bugs até 3 de setembro de 2020 e correções de segurança por 1 ano até 3 de março de 2021.
Novos recursos no Laravel 7
Lâmina X
O Laravel 7 finalizou o mecanismo de modelo do Blade adicionando recursos X completamente novos. Este pacote fornece uma maneira fácil de renderizar componentes HTML personalizados nas visualizações do Blade.
Anteriormente, você deveria ter escrito assim:
@include('myAlert', ['type' => 'error', 'message' => $message])
Agora, usando x blade, ficará assim:
<my-alert type="error" :message="$message" />
Stubs personalizados
Para configurar arquivos stub, você precisa publicá-los:
php artisan stub:publish
Após executar este comando, um novo diretório será adicionado ao seu projeto.
Operações de cadeia livre
Anteriormente, a classe llluminate \ Support \ str fornecia muitas funções úteis de strings. O Laravel 7 agora oferece uma biblioteca de cadeias de caracteres mais livre e orientada a objetos, construída sobre essas funções.
llluminate\Support\Striangable Str::of. :
return (string) Str::of(' Laravel Framework 6.x ')
->trim()
->replace('6.x', '7.x')
->slug();
Zttp HTTP-
Zttp — Guzzle, . Zttp — PHP, Guzzle, .
Laravel Airlock
Laravel Airlock — , (SPA), API . C Airlock API . / , , .
Laravel 7 . (mailer), mail, “”, .
Eloquent (Custom Eloquent Casts)
, , get set. get , set , . , json :
<?php
namespace App\Casts;
use Illuminate\Contracts\Database\Eloquent\CastsAttributes;
class Json implements CastsAttributes
{
public function get($model, $key, $value, $attributes)
{
return json_decode($value, true);
}
public function set($model, $key, $value, $attributes)
{
return json_encode($value);
}
}
(CORS)
Laravel CORS OPTION . CORS CORS, OPTIONS HandleCors, .
Às vezes, você precisa aplicar uma transformação ao executar uma consulta, por exemplo, ao selecionar um valor bruto de uma tabela. Vamos considerar a seguinte consulta:
$users = User::select([
'users.*',
'last_posted_at' => Post::selectRaw('MAX(created_at)')
->whereColumn('user_id', 'users.id')
])->withCasts([
'last_posted_at' => 'date'
])->get()
Sumário
Devo dizer que esta atualização torna o Laravel 7 ainda mais fácil e agradável de usar. Tantos recursos aguardados estão finalmente implementados e prontos para uso.
Eu acho que este é um ótimo lançamento, e estou ansioso pela próxima atualização. Espero que você se sinta da mesma maneira!