Les nouveautés de Laravel 5.3

Les nouveautés de Laravel 5.3

Mercredi 27 juillet 2016, s’ouvrait la Laracon US 2016. Une conférence très attendue par les développeurs Laravel puisque la version 5.3 du framework y a été présentée.

C’est Taylor Otwell, créateur de Laravel qui a clôturé cette première journée en présentant les nouveautés de la version 5.3. Nous avions eu le droit à quelques informations sur ces nouveautés à travers des tweets de Taylor Otwell via le compte @laravelphp, le teasing donnait vraiment envie d’en savoir plus !

Venons-en aux nouveautés présentées :

Laravel Scout

Laravel Scout est une nouvelle fonctionnalité interne au framework qui permettra dès sa sortie de faire de la recherche full-text sur un model. Par défaut Scout supportera Algolia comme moteur de recherche full-text, mais il sera extensible puisqu’il est driver-based. On pourra donc très certainement voir apparaître le support d’Elasticsearch très peu de temps après la sortie officielle de Laravel 5.3.

Scout fonctionne simplement en implémentant un trait Searchable sur nos models existants. Ensuite il suffit de synchroniser les données avec le moteur de recherche via la commande :

php artisan scout:import App\\Post

Enfin, on peut utiliser Scout facilement à partir de nos models :

Post::search('JoliCode')->get();

On peut également utiliser la pagination :

Post::search('JoliCode')—>where('status', '=', 'published')->paginate();

Laravel Mailable

Laravel Mailable est un nouveau trait qui permet d’envoyer des emails, rien de nouveau à première vue, ça utilise toujours Swiftmailer. La nouveauté se situe dans la manière avec laquelle on peut très facilement envoyer un mail :

Mail::to('humans@jolicode.com')->send(new CurriculumVitae);

La classe CurriculumVitae doit implémenter un trait Mailable afin que chacune de ses instances puisse être passée au Mailer.

On peut également utiliser toutes les autres fonctionnalités d’envoi d’email :

Mail::to('humans@jolicode.com')->cc('ponies@jolicode.com')->send(new CurriculumVitae);

Laravel Notifications

Cette nouvelle fonctionnalité permet d’envoyer facilement des notifications à travers différents canaux comme Slack, les SMS ou les emails.

Pour envoyer une notification, voici le bout de code magique :

$user->notify(new DeploymentCompleted($server));

DeploymentCompleted est une classe qui implémente le trait Notifiable

Peu d’informations sur cette fonctionnalité pour le moment, nous en saurons plus lors de sa sortie.

Laravel Passport

Sans doute la nouveauté qui a fait le plus de bruit dans la salle de conférence, à en croire les tweets sur le hashtag #Laracon.

Laravel Passport est un package optionnel pour instancier un serveur oAuth 2 prêt à l’emploi.

Il y a peu d’informations pour le moment sur ce package. Il sera très certainement mis à disposition en dehors de Laravel à travers un package Composer officiel externe, à l’image de Spark, mais gratuitement.

Autres nouveautés

Laravel Echo : une fonctionnalité améliorant grandement la propagation d’événements et l’interaction avec Pusher. Matt Stauffer en parle plus longuement dans un article.


Le type de données JSON dans MySQL est maintenant « requêtable » directement à travers Eloquent, avec cette syntaxe :

DB::table('users')
    ->where('stats->published_posts', '>', 3)
    ->get();

On peut également effectuer des opérations d’update avec cette syntaxe.


Le QueryBuilder renvoie désormais une Collection et plus un tableau PHP contenant dans instances de StdClass.


Les migrations peuvent maintenant être stockées dans un dossier différent de celui par défaut.

$this->loadMigrationsFrom('path/to/your/migrations/folder');

On peut maintenant revenir en arrière migration par migration :

php artisan migrate:rollback --step=1

Vue.js devient de plus en plus lié Laravel. La version 5.3 sera livrée avec tout le nécessaire pour utiliser Vue.js avec Elixir. À l’image de Bootstrap qui est depuis quelques versions inclus dans le package.json d’une installation classique de Laravel.

Date de sortie

Le code source de ces nouveautés n’est pas encore accessible, puisqu’il ne s’agissait là que de l’annonce de la version 5.3. Pour le moment aucune date de sortie officielle n’a été communiquée. Mais il semblerait que la sortie se fasse avant la Laracon EU qui débute le 22 août 2016 à Amsterdam à laquelle nous serons présents.

Pour connaître les détails de toutes les nouveautés de Laravel 5.3, voici quelques comptes Twitter à suivre :

Vous pouvez appronfondir avec la série d’articles de Matt Stauffer sur les nouveautés de Laravel 5.3.

Et bien sûr suivre ce qui se passe lors des conférences sur le hastash #Laracon.

Photo credit to @abigailotwell

blog comments powered by Disqus