FuelPHPエラー:Cannot declare class Controller_○○, because the name is already in use

概要

タイトルの通り、FuelPHPで「この名前はすでに使われているので、Controller_○○クラスは定義できません」と言われました。

状況

コントローラのphpファイルをサブディレクトリに入れたらエラーになりました。同名クラスのコントローラはないので、なぜ「すでに使われている」と言われているのかわかりません。

コントローラの内容は次の通りです。

APPPATH/classes/controller/sub/inner.php

<?php
class Controller_Inner extends Controller
{
public function action_index()
{
echo 'hello';
}
}

原因

サブディレクトリ内にコントローラを配置する場合は、コントローラ名にサブディレクトリを含める必要がありました。ドキュメントに書かれています。

コントローラ – 概要 – FuelPHP ドキュメント

つまり、以下のようにコントローラ名を Controller_Sub_Inner に修正したら正しく表示できました。

<?php
class Controller_Sub_Inner extends Controller
{
public function action_index()
{
echo 'hello';
}
}

おわりに

ドキュメントに書かれている基本ルールを逸脱していたのはわかりました。ただ、「この名前はすでに使われている」というエラーメッセージだったため、気づくのに少し時間がかかりました。

タイトルとURLをコピーしました