【Laravel】Class not foundエラーが発生した時の対処

2021年11月23日火曜日

Laravel PHP

t f B! P L

Laravelでクラスを新しく作った時に、「Class xxxx not found」エラーが表示された時の対処法です。

スポンサーリンク

「Class xxxx not found」発生時の対処

クラス名やパスの設定が間違っていないときはLaravelのルートディレクトリで以下のコマンドを実行することで解消されることがあります。

composer dump-autoload

このエラーが出たときは大抵このコマンドでエラーは解消できますが、解消できない場合はクラスが正しく定義されているのかなど細かな調査が必要になってきます。

dump-autoloadって?

PHPでは通常、別のファイルのプログラムを利用する場合、次のように使用したいPHPファイルのパスを指定して読み込む。

require_once "sample.php";

Laravelなどのフレームワークでは、オートローダの機能により、対象となるphpファイルが自動的に読み込まれるため、requirerequire_onceは不要です。

オートローダの対象にするディレクトリは、composer.jsonで設定します。。
Laravelのプロジェクトを作成すると、デフォルトでcomposer.jsonに次のように設定され、appフォルダ配下のphpファイルは自動的にvendor/composerフォルダにクラスパスが作成されます。

"autoload": {
  "psr-4": {
    "App\\": "app/"
  },
  "classmap": [
    "database/seeds",
    "database/factories"
  ]
},

artisanコマンドでモデルやコントローラーを作成した場合は、自動的にオートロードが行われますが、手動でファイルを作成した場合などでは、オードロードが行われないことがあるため、composer dump-autoloadコマンドでクラスパスを作成します。

スポンサーリンク
スポンサーリンク

このブログを検索

Profile

自分の写真
Webアプリエンジニア。 日々新しい技術を追い求めてブログでアウトプットしています。
プロフィール画像は、猫村ゆゆこ様に書いてもらいました。

仕事募集もしていたり、していなかったり。

QooQ