1
1

More than 5 years have passed since last update.

サブディレクトリに配置したコントローラについて

Posted at

FuelPHPはコントローラをサブディレクトリに配置してそれに対応したURLで呼び出すことができる。

controller/hoge/foo.php
class Controller_Hoge_Foo extends Controller
{
    public function action_index() {
        echo "Controller_Hoge_Fooのaction_indexが呼び出されました";
        exit;
    }

    public function action_bar() {
        echo "Controller_Hoge_Fooのaction_barが呼び出されました";
        exit;
    }
}

上のコントローラの action_index に対応するURLは
http://example.com/hoge/foo

action_bar に対応するURLは
http://example.com/hoge/foo/bar

となる。

この状態で、上位ディレクトリに Controller_Hoge が存在し、action_foo が定義されていた場合に、

controller/hoge.php
class Controller_Hoge extends Controller
{
    public function action_index() {
        echo "Controller_Hogeのaction_indexが呼び出されました";
        exit;
    }

    public function action_foo() {
        echo "Controller_Hogeのaction_fooが呼び出されました";
        exit;
    }
}

Controller_Hoge_Foo.action_index と Controller_Hoge.action_foo のどちらが呼び出されるのかやってみた。

結果

Controller_Hogeのaction_indexが呼び出されました

Controller_Hoge_Fooのaction_indexが呼び出されました

Controller_Hoge_Fooのaction_barが呼び出されました

サブディレクトリが優先して呼び出されるらしく、Controller_Hoge.action_foo は呼び出されなかった。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1