Damien Flandrin

Tutoriels, astuces et conseils sur le développement web par un développeur web

Laravel 5.4 officiellement sortie !

il y a 3 ans · 3 MIN DE LECTURE
#Laravel 

Deux nouveaux Middlewares

Deux nouveaux middleware arrive avec Laravel 5.4, Ce sont TrimStrings et ConvertEmptyStringsToNull.

Trim Strings Middleware coupera automatiquement toutes les données de la requête afin de ne pas avoir à se préoccuper des situations où quelqu'un peut ajouter par erreur des espaces supplémentaires dans vos champs de formulaire.

Convert Empty Strings to Null fonctionne essentiellement de la même manière. Un bon exemple est un formulaire avec un champ non obligatoire vide qui deviendra null avec le middleware et qui fait référence à une colonne de base de données Nullable.

La façade automatique

Laravel 5.4 vous permettra d'utiliser n'importe quelle classe comme une façade à la volée.

namespace App;
class Test
{
    public function hello()
    {
        return ‘Hello World’;
    }
}

Ensuite, dans les routes ou le contrôleur:

use Facades\ {
    App\Test
};

Route::get('/', function () {
    return Test::hello();
});

Laravel Dusk

Lorsque vous écrivez des tests de bout en bout, Laravel fournit un ensemble de méthodes d'aide utiles qui facilitent le clic sur un lien, remplissent un champ de saisie ou soumettent un formulaire. Laravel utilise le composant Symfony BrowserKit pour simuler le comportement du navigateur Web. Toutefois, si votre application utilise JavaScript et AJAX pour charger la page, BrowserKit ne fonctionnera pas pour vous.

C’est pourquoi Laravel 5.4 introduit avec lui Dusk qui résoudra ce genre de problème

Dusk est un outil de test de navigateur de bout en bout. Il vise à fournir une bonne façon de faire des tests sur vos pages, de sorte que vous pouvez utiliser Dusk pour des choses comme des clics sur les boutons ou les liens, remplir des formulaires, et même faire du drag & drop.

De plus, Dusk effectuera automatiquement les captures d'écran de vos tests échoués! Vous pouvez voir ce que la page ressemblait et ce qui a mal tourné.

Laravel Elixir sera renommé par Laravel Mix

Laravel Elixir est sorti en octobre 2014 et visait à rendre plus simple l’utilisation de Gulp par l’intermédiaire d’une API qui permettait d’effectuer des tâches de base comme compiler du sass, il étais accompagné d’une floppé de package assez pratique comme Spritesmith ou bien d’autres.

Avec la prochaine version, Laravel Elixir change son coeur de système qui était Gulp et qui sera dorénavant Webpack. Gros changement donc pour Laravel Elixir et c’est pour cette raison que le plugin change de nom pour devenir Laravel Mix.

Si vous utilisez Elixir par défaut, la migration doit être simple en théorie, un simple copié-collé de l’ancienne configuration vers la nouvelle devrait suffire en théorie.

Si vous souhaitez plus d’information sur Webpack, n’hésitez pas à consulter leur documentation sur le site officiel de Webpack.

Laravel Blade @component et @slot

Une nouvelle fonctionnalité de Laravel 5.4 vous permet d'ajouter des composants aux modèles Blade. Cette fonction a été inspirée par Vue.js et vous permet de simplifier la construction d'éléments HTML dans des zones réutilisables.

Le contenue de mon composant deviendra ma variable $slot de view/profil.blade.php.

// view/home.blade.php
@extends(‘layout’)

@section('content')

@component('profil')
    <a href=”#”>Damien</div>
@endcomponent

@endsection
// view/profil.blade.php
<div class="profil">
    { { $slot } }
</div>

Résultat :

<div class="profil">
    <a href=”/profil”>Damien</div>
</div>

Cela vous permet de définir le texte ou le code HTML qui apparaîtra dans la variable $slot, c’est un exemple assez simple mais vous pouvez aller encore plus loins en définissant des composants comme des menus, des headers, des footers, c’est une nouvelle manière d’imaginer vos vues de manière modulaire.

Vous pouvez utiliser Markdown dans vos e-mails

Laravel 5.4 va inclure un système de Markdown pour la création de templates d’email.

Ce système implémente l'analyseur Parsedown avec Markdown Extra pour que vous puissiez utiliser des tables.

Amélioration à venir pour les routes

Améliorations apportées à la mise en cache des routes destinné aux grosses applications contenant plusieurs milliers de routes.

Simplification de la création d’une route

Dans le passé, si vous vouliez déclarer une route avec un nom ou un middleware, vous le feriez comme ceci à la fin de la fermeture:

Route::get('users'/{id}/profile', function ($id) {
    //
})->name('profile');

Vous pouvez maintenant le définir au début:

Route::name('profile')->get('users'/{id}/profile', function ($id) {
    //
});

Déclarer une route et un middleware :

Route::name('users.index')->middleware('auth')->get('users', function () {
        //
});

Déclarer un middleware avec un préfixe d'itinéraire et un groupe :

Route::middleware('auth')->prefix('api')->group(function () {
    // register some routes...
});

Déclaration d'un middleware à un contrôleur de ressources :

Route::middleware('auth')->resource('photo', 'PhotoController');

Autres nouveautées

  • Nouveau helper : retry et array_wrap
  • Ajout d’une page d’ereur par défaut 503
  • Changement de la notation par ::Class dans le coeur de Laravel.
  • Ajout de noms aux routes de réinitialisation du mot de passe
  • Support pour PhpRedis
  • Ajout de validateurs d’IPv4 et Ipv6
  • La validation de date_format est maintenant plus précise.

source : laravel-news.com

···

Damien Flandrin

Je suis développeur web pour l'agence Carredas, je fais principalement du PHP avec Laravel et Prestashop.

Développeur Web - Damien Flandrin