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
Armadillo édite un moteur de base de données spécialisé dans la gestion de données multimédias et des métadonnées associées. Depuis de nombreuses années, cette plateforme est accessible par le biais d’un connecteur PDO pour PHP, dont nous avons facilité l’intégration en développant une librairie PSR-0 ainsi qu’un bundle Symfony. Notre mission a principalement…
Au fil de notre collaboration avec Deezer, nous avons été impliqués dans plusieurs initiatives visant à optimiser les performances de leur plateforme. Notre engagement initial s’est concentré sur le soutien et le conseil à l’équipe « Product Features » lors de leur projet de migration en cours. Nous avons apporté notre expertise pour résoudre…
Groupama confie à JoliCode la maintenance et les évolutions de son outil de souscription d’épargne salariale. Pierre angulaire de l’acquisition de nouveau client, l’outil permet aux apporteurs de saisir toutes les données de l’entreprise, faire signer numériquement le contrat au client et de conclure la souscription. Le tunnel est accompagné d’outil…