Conventions PHP
Baseline
- PHP 8.3+
- PSR-12 strict
- Propriétés et types de retour typés
- Constructor property promotion quand lisible
readonlyquand la mutation n'est pas requise- Préférer l'injection de dépendances aux facades dans les services complexes
Pattern — constructeur typé
// ✅ BIEN
public function __construct(
private readonly UserRepository $users,
private readonly AuditLogger $auditLogger,
) {}
// ❌ MAL
public function save($data)
{
DB::table('users')->insert($data);
}
Checklist
- ✅ Pas de méthodes publiques sans type sauf si la signature du framework l'exige
- ✅ Pas de code mort
- ✅ Pas de règles métier conditionnelles dupliquées
- ✅ Les exceptions sont loggées ou propagées intentionnellement
- ✅ Pas de
env()en dehors des fichiers de config
Champs chiffrés (Encrypted Cast)
Les valeurs sensibles stockées en base (tokens API, clés) doivent utiliser le cast Eloquent encrypted :
protected function casts(): array
{
return [
'api_key' => 'encrypted',
'token_secret' => 'encrypted',
];
}
Toujours entourer le premier accès dans un try/catch pour DecryptException dans les constructeurs de service.