Regel
Klasse Name muss mit übereinstimmen. Dateiname übereinstimmen.
Viele Sprachen erfordern Klasse Namen
auf übereinstimmen Dateinamen genau übereinstimmen, oder werden sie
scheitern auf Groß- und Kleinschreibung Dateisystemen (Linux).
Unterstützte Sprachen: PHPEinführung
PHP's PSR-4 Autoloading verlangt, dass Klassennamen exakt mit Dateinamen übereinstimmen, einschließlich Groß- und Kleinschreibung. Eine Klasse namens UserRepository muss in UserRepository.php, nicht userrepository.php. Dies funktioniert auf Dateisystemen, die Groß- und Kleinschreibung nicht berücksichtigen, wie Windows und macOS, funktioniert aber nicht auf Linux-Servern und führt zu "Class not found"-Fehlern in der Produktion.
Warum das wichtig ist
Produktionsausfälle: Nicht übereinstimmende Namen führen zu Autoload-Fehlern auf Linux-Servern, bei denen die Groß- und Kleinschreibung eine Rolle spielt. Code, der lokal funktioniert, bricht in der Produktion ab, erfordert Notfall-Hotfixes und verursacht Ausfallzeiten.
compliance: Moderne PHP-Frameworks sind auf PSR-4-Autoloading angewiesen. Klassen, die nicht den Namenskonventionen entsprechen, können nicht automatisch geladen werden, was die Injektion von Abhängigkeiten, Service-Container und Framework-Funktionen beeinträchtigt.
Code-Beispiele
❌ Nicht konform:
<?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();
}
}
Warum das falsch ist: Der Klassenname lautet UserRepository aber der Dateiname lautet userrepository.php (Kleinbuchstaben). Der PSR-4-Autoloader sucht nach UserRepository.php auf Linux-Dateisystemen, die Groß- und Kleinschreibung unterscheiden, nicht finden, was in der Produktion zu fatalen Fehlern führt.
✅ Konform:
<?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();
}
}
Warum das wichtig ist: Der Dateiname UserRepository.php mit dem Klassennamen übereinstimmt UserRepository genau, einschließlich Case. Der PSR-4-Autoloader kann die Klasse auf jedem Dateisystem zuverlässig finden und laden, wodurch umgebungsspezifische Fehler vermieden werden und ein konsistentes Verhalten in Entwicklung und Produktion gewährleistet wird.
Schlussfolgerung
Erzwingen Sie von Beginn Ihres Projekts an eine strikte Zuordnung von Dateinamen zu Klassennamen. Konfigurieren Sie Ihre IDE so, dass Dateien beim Erstellen von Klassen automatisch korrekt benannt werden. Verwenden Sie automatische Überprüfungen in CI/CD-Pipelines, um Unstimmigkeiten vor der Bereitstellung zu erkennen. Die fünf Minuten, die Sie für die korrekte Benennung aufwenden, ersparen Ihnen stundenlanges Debuggen von Autoload-Fehlern in der Produktion.
.avif)
