Image de couverture : Laravel 13 : PHP Attributes, DX et ce que ça change pour vos équipes
tech

Laravel 13 : PHP Attributes, DX et ce que ça change pour vos équipes

19 April 2026
4 min de lecture
13 vues
Sébastien Muler

Laravel 13 : PHP Attributes, DX et ce que ça change pour vos équipes

Source originale : Laravel 13 Deep Dive – DEV Community par Md Murtuza Hussain.

Laravel 13 est sorti le 17 mars 2026, présenté par Taylor Otwell à Laracon EU. Pas de rupture brutale, pas de refonte architecturale : cette version mise tout sur l'expérience développeur (DX), l'adoption des fonctionnalités modernes de PHP 8.3 et des améliorations qualitatives ciblées. Voici ce qui mérite vraiment votre attention.


1. La grande révolution des PHP Attributes

C'est la fonctionnalité phare de cette version. Laravel 13 adopte massivement les PHP 8 Attributes à travers tout le framework. Modèles Eloquent, Jobs, Commands, Middleware… presque tout peut désormais être configuré de façon déclarative, directement au-dessus de la déclaration de classe.

Avant (Laravel 12)

class User extends Model
{
    protected $table = 'system_users';
    protected $primaryKey = 'user_id';
    public $incrementing = false;
    protected $keyType = 'string';
    protected $fillable = ['name', 'email'];
    protected $hidden = ['password'];
}

Après (Laravel 13)

#[Table('system_users')]
#[PrimaryKey('user_id', 'string', incrementing: false)]
#[Fillable(['name', 'email'])]
#[Hidden(['password'])]
class User extends Model {}

Le résultat : des classes plus lisibles, moins encombrées, et une configuration visible d'un seul coup d'œil. Et bonne nouvelle : c'est 100 % additif. L'ancienne syntaxe basée sur les propriétés protégées continue de fonctionner sans modification.

La même logique s'applique aux Jobs et Artisan Commands :

// Job
#[Queue('notifications')]
#[Tries(3)]
#[Timeout(60)]
class SendWelcomeEmail implements ShouldQueue {}

// Command
#[Command('app:sync-users', description: 'Synchronise les utilisateurs')]
class SyncUsersCommand extends Command {}

2. Améliorations DX notables

Au-delà des attributes, plusieurs améliorations ciblent le quotidien des développeurs.

Typage renforcé et retours stricts

Laravel 13 tire parti de PHP 8.3 pour durcir les types internes du framework (propriétés typées, readonly, intersection types). Moins d'erreurs silencieuses, des IDE mieux informés.

Nouvelles helpers et raccourcis Eloquent

De nouveaux helpers font leur apparition pour les opérations courantes, réduisant le boilerplate sans sacrifier la lisibilité.

Amélioration du système de routes

La définition des routes bénéficie également du support des attributes, ce qui permet des configurations plus expressives directement sur les contrôleurs.


3. 📋 Mini-checklist « quoi tester tout de suite »

Vous gérez une application Laravel existante ou envisagez de migrer ? Voici les points à valider en priorité :

  • Inventoriez vos Modèles : identifiez les $table, $fillable, $hidden, $casts candidats à la migration en attributes.
  • Auditez vos Jobs : $queue, $tries, $timeout sont directement remplaçables.
  • Passez en revue vos Commands : la signature et la description peuvent être déclarées via #[Command(...)].
  • Vérifiez votre version PHP : Laravel 13 requiert PHP 8.2 minimum, 8.3 recommandé pour profiter pleinement des améliorations de typage.
  • Lancez votre suite de tests après mise à jour : la rétrocompatibilité est assurée, mais mieux vaut confirmer.
  • Consultez le CHANGELOG officiel pour les dépendances tierces (packages Spatie, etc.) qui pourraient ne pas encore supporter les nouveaux attributes.

Perspective Symfony/PHP

Pour les équipes qui, comme chez MulerTech, travaillent principalement avec Symfony, cette évolution de Laravel est un signal intéressant : les PHP Attributes s'imposent comme le standard d'expression de la configuration en PHP moderne. Symfony les utilise depuis plusieurs versions (#[Route], #[IsGranted], #[ORM\Entity]…). Laravel rejoint cette philosophie, ce qui renforce la cohérence de l'écosystème PHP dans son ensemble.

Si vous maintenez des projets multi-framework ou que vous recrutez des profils polyvalents, cette convergence vers les attributes est une bonne nouvelle : les conventions se rapprochent.


Conclusion

Laravel 13 n'est pas une révolution, c'est une maturation. L'adoption des PHP Attributes est le changement le plus structurant : il améliore la lisibilité du code, facilite l'outillage (IDE, analyse statique) et aligne Laravel sur les standards modernes de PHP. La migration est progressive et sans risque, ce qui en fait une mise à jour à planifier sereinement.

Pour aller plus loin, l'article source détaille chaque fonctionnalité avec des exemples complets : lire l'article original sur DEV Community.

Partager cet article