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 !
Small new feature in Laravel 5.3: roll back one migration at a time. pic.twitter.com/Q2mfslDXo9 — Laravel (@laravelphp) 6 juin 2016
Also coming in Laravel 5.3… $loop variable in Blade « foreach » loops provides helpful info! pic.twitter.com/K7URBZNm0Q — Laravel (@laravelphp) 6 juin 2016
Venons-en aux nouveautés présentées :
Section intitulée laravel-scoutLaravel 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();
Section intitulée laravel-mailableLaravel 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);
Section intitulée laravel-notificationsLaravel 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.
Section intitulée laravel-passportLaravel 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.
Section intitulée autres-nouveautesAutres 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.
Laravel 5.3 sets you up with boilerplate to work with Vue straight out of the box. pic.twitter.com/L2T9LvCkZE — Laracasts (@laracasts) 27 juillet 2016
Section intitulée date-de-sortieDate 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
Commentaires et discussions
Ces clients ont profité de notre expertise

En tant que joaillier 100 % numérique, l’équipe de Courbet Paris a souhaité se doter d’une plateforme eCommerce, capable d’offrir une expérience moderne qui revalorise l’acte d’achat de produits de joaillerie sur internet. JoliCode a accompagné leur équipe en développant une plateforme robuste, mais aussi évolutive, afin de répondre aux enjeux business…

À l’occasion de la 12e édition du concours Europan Europe, JoliCode a conçu la plateforme technique du concours. Ce site permet la présentation des différents sites pour lesquels il y a un appel à projets, et encadre le processus de recueil des projets soumis par des milliers d’architectes candidats. L’application gère également toute la partie post-concours…

JoliCode accompagne l’équipe technique Dayuse dans l’optimisation des performances de sa plateforme. Nous sommes intervenus sur différents sujets : La fonctionnalité de recherche d’hôtels, en remplaçant MongoDB et Algolia par Redis et Elasticsearch. La mise en place d’un workflow de réservation, la migration d’un site en Twig vers une SPA à base de…