Regola
Classe nome deve corrispondere a nomefile.
Molte linguaggi richiedono classe classi
che corrispondano i nomi dei file esattamente, oppure altrimenti
non funzioneranno a sistemi di file sistemi di file (Linux).
Lingue supportate: PHPIntroduzione
L'autocaricamento PSR-4 di PHP richiede che i nomi delle classi corrispondano esattamente ai nomi dei file, rispettando anche le maiuscole e le minuscole. Una classe denominata Repository utenti deve trovarsi in UserRepository.php, non userrepository.php. Questo funziona su file system che non distinguono tra maiuscole e minuscole, come Windows e macOS, ma non funziona sui server Linux, causando errori del tipo "Classe non trovata" in ambiente di produzione.
Perché è importante
Errori in produzione: nomi non corrispondenti causano errori di caricamento automatico sui server Linux in cui i file system distinguono tra maiuscole e minuscole. Il codice che funziona in ambiente locale smette di funzionare in produzione, rendendo necessari hotfix di emergenza e causando tempi di inattività.
Conformità allo standard PSR-4: i moderni framework PHP si basano sull'autocaricamento PSR-4. Le classi che non rispettano le convenzioni di denominazione non possono essere autocaricate, compromettendo l'iniezione delle dipendenze, i contenitori di servizi e le funzionalità del framework.
Esempi di codice
❌ 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();
}
}
Perché è sbagliato: Il nome della classe è Repository utenti ma il nome del file è userrepository.php (minuscolo). L'autoloader PSR-4 cercherà UserRepository.php e non riescono a trovarlo sui file system Linux che distinguono tra maiuscole e minuscole, causando errori irreversibili in ambiente di produzione.
✅ 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();
}
}
Perché è importante: Il nome del file UserRepository.php corrisponde al nome della classe Repository utenti Esatto, maiuscole e minuscole incluse. L'autoloader PSR-4 è in grado di individuare e caricare in modo affidabile la classe su qualsiasi filesystem, eliminando gli errori legati all'ambiente e garantendo un comportamento coerente sia in fase di sviluppo che in produzione.
Conclusione
Assicurati fin dall'inizio del progetto che i nomi dei file corrispondano rigorosamente a quelli delle classi. Configura il tuo IDE in modo che assegni automaticamente i nomi corretti ai file durante la creazione delle classi. Utilizza controlli automatici nelle pipeline CI/CD per individuare eventuali discrepanze prima della distribuzione. I cinque minuti dedicati a garantire una denominazione corretta ti eviteranno ore di debug per risolvere errori di autoload in produzione.

