概要
タイトルの通り、FuelPHPで「この名前はすでに使われているので、Controller_○○クラスは定義できません」と言われました。
状況
コントローラのphpファイルをサブディレクトリに入れたらエラーになりました。同名クラスのコントローラはないので、なぜ「すでに使われている」と言われているのかわかりません。
コントローラの内容は次の通りです。
APPPATH/classes/controller/sub/inner.php
<?php class Controller_Inner extends Controller { public function action_index() { echo 'hello'; } }
原因
サブディレクトリ内にコントローラを配置する場合は、コントローラ名にサブディレクトリを含める必要がありました。ドキュメントに書かれています。
つまり、以下のようにコントローラ名を Controller_Sub_Inner に修正したら正しく表示できました。
<?php class Controller_Sub_Inner extends Controller { public function action_index() { echo 'hello'; } }
おわりに
ドキュメントに書かれている基本ルールを逸脱していたのはわかりました。ただ、「この名前はすでに使われている」というエラーメッセージだったため、気づくのに少し時間がかかりました。