ルール
クラス名は ファイル名と 一致させる 必要があります。
多くの 言語では、 クラス名を
ファイル名と 完全に 一致させる 必要があり、 そうしないと
大文字と小文字を 区別する ファイルシステム (Linux)で 失敗します。
サポート言語: PHPはじめに
PHPのPSR-4オートローディングでは、クラス名がファイル名と大文字・小文字を含めて完全に一致する必要があります。という名前のクラス UserRepository である必要があります UserRepository.php, ではなく userrepository.phpこれはWindowsやmacOSのような大文字小文字を区別しないファイルシステムでは動作しますが、Linuxサーバーでは機能せず、本番環境で「Class not found」エラーを引き起こします。
なぜ重要なのか
本番環境での障害: 名前の不一致は、ファイルシステムが大文字と小文字を区別するLinuxサーバーでオートロードの失敗を引き起こします。ローカルで動作するコードが本番環境で動作しなくなり、緊急ホットフィックスとダウンタイムが必要になります。
PSR-4準拠: 最新のPHPフレームワークはPSR-4オートロードに依存しています。命名規則に従わないクラスはオートロードできず、依存性注入、サービスコンテナ、およびフレームワークの機能を損ないます。
コード例
❌ 非準拠:
<?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();
}
}
誤っている理由: クラス名は UserRepository しかし、ファイル名は userrepository.php (小文字)。PSR-4オートローダーは以下を探します UserRepository.php そして大文字と小文字を区別するLinuxファイルシステム上でそれを見つけられず、本番環境で致命的なエラーを引き起こします。
✅ 準拠済み:
<?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();
}
}
これが重要である理由: ファイル名 UserRepository.php クラス名と一致する UserRepository 大文字・小文字を含め、完全に一致します。PSR-4オートローダーは、あらゆるファイルシステム上でクラスを確実に特定してロードできるため、環境固有の障害を排除し、開発環境と本番環境全体で一貫した動作を保証します。
まとめ
プロジェクトの開始時から、厳格なファイル名とクラス名の照合を強制してください。クラス作成時にIDEがファイルを自動的に正しく命名するように設定します。デプロイ前に不一致を検出するために、CI/CDパイプラインで自動チェックを使用してください。適切な命名を確実にするために費やした5分間は、本番環境でのオートロード失敗のデバッグに費やす何時間もの時間を防ぎます。

