Posted at

concrete5にPSR-4 autoloader形式でコード追加した時に、追加したclassが見つかりませんエラーで毎度ハマるのでメモ

More than 3 years have passed since last update.


Fatal error: Class 'Application\Controllers\xxx' not found

オートローダーがロードしてくんねーよー!!

これ、ちょいちょいハマります。


複数形と単数系のワナ

concrete5の5.7系では、コントローラのディレクトリはこうなってます。

application

-controllers
--controller.php

で、ネームスペースは

Application\Controller\Controller

なんですね。

ポイントというか罠はココ

/controllers に対して\Controller

ディレクトリ名は複数形に対して、namespaceは単数系。

英語じゃコレが普通なんですかね?

ディレクトリ名が複数形だから〜って複数形でnamespace書くとnot foundになりケアレスミス探しのあり地獄に落ちます。

コードを一晩寝かせるパターンですね。

cakePHPがテーブル名が複数系になってるかどうかのチェックしてた悪夢を思い出しますわ。