エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

【PHP】Class Xxx does not existの対応【781日目】

対処しにくいエラー

Class App\Controllers\XxxController does not exist

こんな感じのエラーを見たことはあると思う。
これは、クラス自体がルールに則って書かれてない時に起こる。
例えば、関係ないところに文字があったりなど。

手元のコードに、てきとーな文字列を入れてクラスを壊してやれば、再現出来ると思います。

だいたいは、エディター等がエラーを吐いてくれると思います。
だいたいのエラーはそれで対応出来ますが、継承とかだと気づかないことも。

起こったこと

protected function xxx(Model $user) {}

これをオーバーライドしようとして、コピペしたけど、上のエラーが出た。なぜだ。

対処

Modelのパスが異なっていた(useを正しく記述していなかった)

引数の型であるModelが異なるので、オーバーライド出来なかった。
オーバーロードなんてないので、クラスとして正しく記述されていないため、エラーが発生した。

普段は、該当するクラスは無いよとか出るのですが、これはなかなか気づけないよね。