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
L'autoloading PSR-4 de PHP exige que les noms de classes correspondent exactement aux noms de fichiers, y compris la casse. Une classe nommée UserRepository doit être dans UserRepository.php, pas userrepository.php. Cela fonctionne sur les systèmes de fichiers insensibles à la casse comme Windows et macOS, mais échoue sur les serveurs Linux, provoquant des erreurs "Class not found" en production.
Pourquoi c'est important
Défaillances de production : Des noms non concordants entraînent des échecs d'autoload sur les serveurs Linux où les systèmes de fichiers sont sensibles à la casse. Le code qui fonctionne localement tombe en panne en production, nécessitant des correctifs d'urgence et provoquant 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 incorrect : Le nom de la classe est UserRepository mais le nom du fichier est userrepository.php (minuscules). L'autoloader PSR-4 recherchera UserRepository.php et ne parviennent pas à le trouver sur des systèmes de fichiers Linux sensibles à la casse, provoquant 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 c'est important : Le nom du fichier UserRepository.php correspond au nom de la classe UserRepository exactement, y compris la casse. L'autoloader PSR-4 peut localiser et charger la classe de manière fiable sur n'importe quel système de fichiers, éliminant les échecs spécifiques à l'environnement et assurant un comportement cohérent entre le développement et la production.
Conclusion
Imposez une correspondance stricte entre le nom de fichier et le nom de classe dès le début de votre projet. Configurez votre IDE pour nommer 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 non-conformités avant le déploiement. Les cinq minutes passées à assurer un nommage correct évitent des heures de débogage des échecs d'autoload en production.
.avif)
