MeWrite Docs

PHP Fatal error: Class not found

PHPでクラスが見つからない場合に発生するエラー

概要

PHPで使用しようとしたクラスが見つからない、またはオートロードできない場合に発生するエラーです。

エラーメッセージ

PHP Fatal error: Uncaught Error: Class 'App\Services\UserService' not found

原因

  1. クラスファイルが存在しない: ファイルが作成されていない
  2. オートロードの問題: composer dump-autoloadが必要
  3. 名前空間の不一致: クラスの名前空間とファイルパスが一致しない
  4. ファイル名の問題: クラス名とファイル名が一致しない

解決策

1. Composer オートロードを再生成

1
composer dump-autoload

2. 名前空間を確認

1
2
3
4
5
6
7
// ファイル: src/Services/UserService.php
namespace App\Services;

class UserService
{
    // ...
}
1
2
3
4
// 使用する側
use App\Services\UserService;

$service = new UserService();

3. composer.json の autoload 設定を確認

1
2
3
4
5
6
7
{
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    }
}

4. クラスファイルのパスを確認

プロジェクトルート/
├── composer.json
├── src/
│   └── Services/
│       └── UserService.php  ← App\Services\UserService
└── vendor/

5. 手動で require

1
require_once __DIR__ . '/src/Services/UserService.php';

6. オートロードファイルの読み込み確認

1
require_once __DIR__ . '/vendor/autoload.php';

7. classmap を使用

1
2
3
4
5
6
7
8
{
    "autoload": {
        "classmap": [
            "src/",
            "lib/"
        ]
    }
}

よくある間違い

  • ファイル名の大文字小文字(Linux環境で問題になる)
  • vendorディレクトリがない(composer install未実行)
  • 名前空間のバックスラッシュとディレクトリ構造の不一致
  • PHPファイルの開始タグ(<?php)が抜けている

PHP の他のエラー

最終更新: 2025-12-09