Laravel 7

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
    {
        /**
         * Cast the given value.
         *
         * @param  \Illuminate\Database\Eloquent\Model  $model
         * @param  string  $key
         * @param  mixed  $value
         * @param  array  $attributes
         * @return array
         */
        public function get($model, $key, $value, $attributes)
        {
            return json_decode($value, true);
        }
     
        /**
         * Prepare the given value for storage.
         *
         * @param  \Illuminate\Database\Eloquent\Model  $model
         * @param  string  $key
         * @param  array  $value
         * @param  array  $attributes
         * @return string
         */
        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!


All Articles