Help us understand the problem. What is going on with this article?

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がテーブル名が複数系になってるかどうかのチェックしてた悪夢を思い出しますわ。

tao_s
オープンソースなweb屋です。 Webベースの業務システムからECサイト、ブログまで何でもござれ EC-CUBE、concrete5のコミッターもやってます コンクリートファイブ ジャパン株式会社 ファウンダー
http://www.xross-cube.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした