Règle
Classe nom doit correspondre nom de fichier.
De nombreuses langues exigent classe de classe
doivent correspondre noms de fichiers exactement, ou ils
échouer sur les sensibles à la casse systèmes de fichiers (Linux).
Langues prises en charge : PHPIntroduction
Le chargement automatique PSR-4 de PHP exige que les noms de classes correspondent exactement aux noms de fichiers, y compris la casse. Une classe nommée Référentiel d'utilisateurs doit être dans UserRepository.php, pas userrepository.php. Cela fonctionne sur les systèmes de fichiers insensibles à la casse comme Windows et macOS, mais ne fonctionne pas sur les serveurs Linux, provoquant des erreurs "Class not found" dans la production.
Pourquoi c'est important
Échecs de production : Les noms non concordants provoquent des échecs de chargement automatique sur les serveurs Linux où les systèmes de fichiers sont sensibles à la casse. Le code qui fonctionne localement ne fonctionne pas en production, ce qui nécessite des correctifs d'urgence et entraîne des temps d'arrêt.
Conformité PSR-4 : Les frameworks PHP modernes s'appuient sur l'autoloading PSR-4. Les classes qui ne respectent pas les conventions de nommage ne peuvent pas être chargées automatiquement, ce qui compromet l'injection de dépendances, les conteneurs de services et les fonctionnalités du framework.
Exemples de code
❌ Non conforme :
<?php
// File: userrepository.php
namespace App\Repositories;
class UserRepository
{
public function findById($id)
{
return User::find($id);
}
public function save(User $user)
{
return $user->save();
}
}
Pourquoi c'est mal : Le nom de la classe est Référentiel d'utilisateurs mais le nom du fichier est userrepository.php (minuscules). L'autochargeur PSR-4 recherchera UserRepository.php et ne le trouve pas dans les systèmes de fichiers Linux sensibles à la casse, ce qui provoque des erreurs fatales en production.
✅ Conforme :
<?php
// File: UserRepository.php
namespace App\Repositories;
class UserRepository
{
public function findById($id)
{
return User::find($id);
}
public function save(User $user)
{
return $user->save();
}
}
Pourquoi cela est-il important ? Le nom du fichier UserRepository.php correspond au nom de la classe Référentiel d'utilisateurs exactement, y compris la casse. L'autochargeur PSR-4 peut localiser et charger la classe de manière fiable sur n'importe quel système de fichiers, ce qui élimine les défaillances propres à l'environnement et garantit un comportement cohérent entre le développement et la production.
Conclusion
Appliquer une correspondance stricte entre le nom du fichier et le nom de la classe dès le début de votre projet. Configurez votre IDE pour qu'il nomme automatiquement les fichiers correctement lors de la création de classes. Utilisez des vérifications automatisées dans les pipelines CI/CD pour détecter les erreurs avant le déploiement. Les cinq minutes passées à s'assurer que les noms sont corrects permettent d'éviter des heures de débogage en cas d'échec du chargement automatique en production.
.avif)
