Catégories
Laravel

Quoi de neuf Laravel ? #01

Hello les devs et plus particulièrement les afficionados de Laravel ! Oui toi, le fanatique de ce framework qui ne manque jamais une occasion d’en parler.
Cette nouvelle série de posts intitulée « Quoi de neuf Laravel ? » est faite pour toi mais rien ne t’empêche d’en parler à tes potes, bien au contraire !

Nous sommes le 19 mars 2021, certaines régions et certains départements de France : Île-de-France, Hauts-de-France, Alpes-Maritimes, l’Eure, Seine-Maritime s’apprêtent à être reconfinés 🙁

Et toi, tu es reconfiné ?

Oui ? Chouette ou triste, en tout cas ce sera une super occasion pour peaufiner tes connaissances sur ton framework préféré, non ?

Bon sans plus attendre et sans transition, on commence le tour des news de la semaine.

Au programme de Quoi de neuf Laravel ? cette semaine :

Sortie de Laravel 8.33

Laravel 8.33 vient tout juste de sortir et il apporte quelques nouveautés en plus des habituelles corrections de bugs. Jetons y un oeil :

L’option « missing » pour les routes ressources

Lors de l’utilisation de route ressources, il sera possible désormais de renvoyer vers une page d’erreur en cas de route inexistante :

Route::resource('users', UsersController::class)
    ->missing(function () {
        return response('missing', 404);
    });

Interface StringEncrypter

namespace Illuminate\Contracts\Encryption;

interface StringEncrypter
{
    public function encryptString($value);
    public function decryptString($value);
}

Il s’agit d’une interface permettant d’encrypter une string sans sérialisation. Pour en savoir plus, je t’encourage à aller voir les pull requests correspondantes :

Colonnes Nullable avec AsArrayObject et AsCollection

Il est désormais possible d’avoir des colonnes null en base de données utilisant les casts AsArrayObject et AsCollection casts.

Le changelog complet de Laravel 8.33

Tu peux le consulter ici ou en lire le contenu ci-dessous :

Added

  • Added broken pipe exception as lost connection error (#36601)
  • Added missing option to resource (#36562)
  • Introduce StringEncrypter interface (#36578)

Fixed

  • Fixed returns with Mail & Notification components (#36559)
  • Stack driver fix: respect the defined processors in LogManager (#36591)
  • Require the correct password to rehash it when logging out other devices (#366081e61612)

Changed

  • Allow nullable columns for AsArrayObject/AsCollection casts (#36526)
  • Accept callable class for reportable and renderable in exception handler (#36551)
  • Container – detect circular dependencies (dd7274da712f726f9bb4c)
  • Initialize CronExpression class using new keyword (#36600)
  • Use different config key for overriding temporary url host in AwsTemporaryUrl method (#36612)

Debugguer en prod c’est mal ! ou pas !!!

Bon, tu le sais, on te l’a toujours dit débuguer en prod c’est le mal absolu.

Galerie Le cinquième élément 7

Encore que, tu peux encore augmenter ton evil level en débugguant en prod le vendredi soir à 17h 😉

Bon enfin bref, admettons que tu as un bug en prod que tu ne peux pas reproduire en local (1).

Tu peux difficilement faire des var_dump dégueulasses en plein milieu du site en production de ton client.

Il est possible d’envoyer des mails avec le contenu des variables qui t’intéresse mais entre nous c’est pas ouf.

Une autre solution est d’aller compulser les logs, etc.

Enfin tu vois tout de même qu’il n’y a pas vraiment de solutions sexy à ce fichu problème.

Tu as déjà vécu cela ?

Hummm, et je suis sur que tu as déjà utilisé des solutions pas très propres comme celles décrites plus haut. N’est ce pas ?

Allez raconte moi cela dans les commentaires, j’adore ce genre d’anecdotes !

Bref, tu te doutes bien que j’ai trouvé une solution plus sexy que toutes ces méthodes d’un autre âge.

La solution s’appelle Ray !

Non pas Ray Charles au talent fou, non l’application Ray développée chez Spatie (encore eux).

Ray est une application compatible Windows, Linux et Mac, payante de debugging et la dernière version sortie permet de connecter Ray à votre serveur de production via SSH.

A partir de là, il vous suffira de placer vos commandes Ray de débugging dans votre code en production pour que vous receviez en local les informations de débugging.

Pour rappel, Ray vous permet de placer vos commandes de debugging en production sans en perturber l’exécution, contrairement à un bon vieux var_dump.

Je laisse Freek vous présenter cette nouvelle fonctionnalité :

Qu’en penses tu ? Exprime toi dans les commentaires 😉

(1) Avec Laragon, tu peux configurer ton environnement de dev de façon assez similaire que ta prod en choisissant :

  • ta version d’Apache ou de nGinx
  • ta version de PHP
  • ta version de MySQL ou autres bases de données
  • etc.

Laracon 2021 : la grand messe Laravel

Cette semaine avait lieu la Laracon, la grand messe des fans de Laravel et le lieu où sont présentées les toutes dernières nouveautés gravitant autour de ce framework.

Les sujets abordés étaient les suivants :

Mohamed Said a présenté le système de Queue de Laravel. Il connait plutôt bien le sujet car il a écrit un livre sur le sujet « Laravel queues in action« 

Christoph Rumpele a expliqué comment utilisé le Service Container de Laravel, mais surtout son ‘quand’ et son ‘pourquoi’

Bobby Bouwmann a vaillamment parcouru les routes de Laravel et a donné des pistes sur leur réutilisation dans nos propres développement.

Taylor Otwell a parlé des évolutions et des mises à jour de Laravel ainsi que de son nouveau bébé : Octane.

Marcel Pociot comment fonctionne concrètement le broadcasting et comment une implémentation côté client de Laravel Echo envoie des évènements à notre navigateur

Ensuite Miguel Piedrafitaa nous a emmené dans les profondeurs de Laravel et explique comment les différents packages Illuminate s’assemblent pour créer Laravel

Caleb Porzio a ensuite expliqué comment il était possible d’améliorer nos flux de travail en les soupoudrant d’un peu d’AlpineJS et de Livewire

Pour terminer cette édition, Nuno Maduro a présenté comment recréer Laravel Artisan, notre outil du quotidien, from scratch afin de démystifier le code et la magie qui opère en coulisse.

Si tu souhaites voir ces différents intervenants, il est possible de prendre ton ticket pour accéder aux vidéos de la Laracon 2021.

PROMO

Je t’offre 9€ sur ma formation de plus de 4 heures qui va te permettre d’apprendre Laravel !

Tu as des applications Laravel 7 ? Ce qui suit est vital pour toi !

Depuis le 3 mars 2021, Laravel 7 ne reçoit plus aucun correctif, pas même ceux de sécurité.

Je ne peux que te recommander chaudement de passer à Laravel 8 !

J’en profite pour te rappeler que Laravel 9 sera la prochaine LTS, son arrivée permettra à Laravel 6 de prendre une pré-retraite bien méritée après 2 ans de bons et loyaux services. Elle aura encore les correctifs de sécurité actualisés pendant un an, jusqu’en septembre 2022.

Laravel 9 sera en production au début de septembre 2021. En attendant, je te souhaite une bonne migration de Laravel 7 vers Laravel 8. Si tu as besoin d’aide, tu sais où me trouver 😉

De l’octane pour mettre le turbo à ton application Laravel 😉

Taylor a présenté cette semaine lors de la Laracon, Octane. Ce dernier va permettre d’augmenter très significativement le nombre de requêtes par seconde que pourra supporter une application Laravel.

Lors de la demo effectuée lors de la Laracon, Octane a atteint 6000 requêtes / seconde :

Nous en saurons plus d’ici quelques semaines, sans doute avec une sortie en beta d’Octane.

Il faut savoir qu’en arrière plan Octane se base sur Swoole et RoadRunner.

TailwindCSS fait un énorme régime. Hello Jit !

Tu utilises TailwindCSS avec Laravel ?

Ce qui suit va t’intéresser je pense.

Adam Wathan vient de lancer la première version de Tailwind JIT (JIT pour Just In Time, tu l’avais évidemment deviné).

Adam explique que lors de la mise en production de ton projet, tu peux compiler ton CSS pour qu’il ne contienne que ce qui est réellement utilisé par ton projet. Cela donne au final un fichier css optimisé de quelques kilo-octets seulement.

Par contre, actuellement ce n’était pas du tout la même sauce lors du développement. Surtout si tu as pris l’habitude de customiser ton Tailwind via le fichier de config.

Adam indique dans sa vidéo que le poids des fichiers css générés peut dépasser les 10 mega-octets. Ouch !

Ton navigateur n’apprécies pas forcément 🙁

Comme montré dans la démo ci-dessous, avec un tel poids de fichier, ton navigateur et tes fidèles outils de développement (F12) semblent réagir en décalé.

Avec Jit, tout est différent, il compile à la volée au fur et à mesure de tes modifications le fichiers CSS utilisé pour le dev. Tu as ainsi la même fluidité que si tu étais avec le fichier final de prod.

Je te laisse voir en détail cela via la présentation d’Adam :

Il est important de préciser également qu’il est désormais possible d’utiliser la « square bracket syntax » qui permet de gagner encore un peu plus en souplesse d’écriture.

Pour activer Jit sur Tailwind, il te suffira de suivre les deux étapes suivantes :

  1. Installer Jit
npm install -D @tailwindcss/jit tailwindcss postcss autoprefixer
  1. Modifier ta configuration comme ci-dessous
// postcss.config.js
module.exports = {
    plugins: {
      '@tailwindcss/jit': {},
      autoprefixer: {},
    }
}

Enjoy !

Le mot de la fin

Ce sera tout pour ce premier épisode de « Quoi de neuf Laravel ?« 

Dis moi dans les commentaires ce que tu penses de ce format à visée purement informative.

Prends soin de toi et de ta famille et on se retrouve la semaine prochaine pour le numéro 2 !

Un petit soutien ?

Te tenir informé et te proposer du contenu gratuit sur Laravel nécessite pas mal de travail.
Ce dernier est passionnant !
Pour m’aider à continuer, et pourquoi pas m’aider à vivre de ma passion, tu peux faire un don de ton choix 1€, 2€, 10€ ce que tu veux !

Aidez nous à nous améliorer en évaluant cet article :
[Total: 2 Moyenne: 5]

Par HappyToDev

Absolument passionné depuis toujours par l'informatique et la programmation, je souhaite via ce blog vous faire passer un peu du savoir que j'ai accumulé depuis des années.
Et même, pourquoi pas, vous aider à faire le premier pas dans le développement web.

Vous êtes prêts ?
Alors allons y ensemble et n'oubliez pas que les débutants sont vraiment les bienvenus.

2 réponses sur « Quoi de neuf Laravel ? #01 »

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.