Laravel 7

Introducción


El 3 de marzo, el equipo de Laravel lanzó oficialmente Laravel 7.0. Como se indica en la política de soporte de Laravel, esta es una de las principales actualizaciones. Aunque esta versión no está designada como LTS, aún presenta muchas nuevas características y correcciones. La actualización proporcionará correcciones de errores hasta el 3 de septiembre de 2020 y correcciones de seguridad durante 1 año hasta el 3 de marzo de 2021.


Nuevas características en Laravel 7


X cuchilla


Laravel 7 finalizó el motor de plantillas Blade al agregar características X completamente nuevas. Este paquete proporciona una manera fácil de representar componentes HTML personalizados en sus vistas Blade.


Anteriormente, debería haber escrito así:


@include('myAlert', ['type' => 'error', 'message' => $message])

Ahora, usando x blade, se verá así:


<my-alert type="error" :message="$message" />


Trozos personalizados



Para configurar archivos de código auxiliar, debe publicarlos:


php artisan stub:publish

Después de ejecutar este comando, se agregará un nuevo directorio a su proyecto.


Operaciones de cadena libre


Anteriormente, la clase llluminate \ Support \ str proporcionaba muchas funciones de cadena útiles. Laravel 7 ahora ofrece una biblioteca de cadenas más orientada a objetos y libre construida sobre estas funciones.


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, .



En ocasiones, debe aplicar una transformación al ejecutar una consulta, por ejemplo, al seleccionar un valor bruto de una tabla. Consideremos la siguiente consulta:


    $users = User::select([
    'users.*',
    'last_posted_at' => Post::selectRaw('MAX(created_at)')
            ->whereColumn('user_id', 'users.id')
])->withCasts([
    'last_posted_at' => 'date'
])->get()


Resumen


Debo decir que esta actualización hace que Laravel 7 sea aún más fácil y más agradable de usar. Tantas características tan esperadas finalmente se implementan y están listas para usar.


Creo que este es un gran lanzamiento, y espero con interés la próxima actualización. ¡Espero que sientas lo mismo!


All Articles