PHP: Class not found (Composer autoload)
ComposerのオートロードでクラスがつからないエラーsizeIndex原因と解決策
概要
Composerのオートロードが正しく設定されておらず、クラスが見つからない場合のエラーです。
エラーメッセージ
``` PHP Fatal error: Uncaught Error: Class ‘App\Services\UserService’ not found ```
原因
- オートロード未実行: composer dump-autoload が必要
- 名前空間の不一致: PSR-4設定とディレクトリ構造が不一致
- ファイル名の不一致: クラス名とファイル名が異なる
- composer.json の設定ミス: autoload セクションの誤り
解決策
1. オートロードを再生成
```bash
基本
composer dump-autoload
最適化(本番向け)
composer dump-autoload –optimize
クラスマップを再生成
composer dump-autoload –classmap-authoritative ```
2. composer.json を確認
```json { “autoload”: { “psr-4”: { “App\”: “src/”, “Tests\”: “tests/” }, “files”: [ “src/helpers.php” ] } } ```
3. ディレクトリ構造を確認
``` src/ ├── Services/ │ └── UserService.php ← App\Services\UserService └── Models/ └── User.php ← App\Models\User ```
4. ファイル内の名前空間を確認
```php
関連エラー
PHP の他のエラー
この記事は役に立ちましたか?