Codeigniterでcontrollerをディレクトリ分けする(その1)
どうもeeyanaikaやでー!
今日はCodeigniterのcontrollerをディレクトリ分けするためのURIルーティングについてです。
基本的なルーティングについてはユーザーガイドに書いてあるのですが、ディレクトリに分ける具体例がないので、改めて書いてみたいと思います。
ディレクトリ分け その1
まず管理画面側のcontrollerを下記のように別ディレクトリに分けたい、という場面です。
controller
└ foo.php
└ bar.php
└ admin
└ baz.php
これは簡単で、config/routes.phpに
$route['admin/(:any)'] = "admin/$1";
と書けばOKです。
こうすると、URL中に「admin/」があれば、自動的にadminディレクトリ以下のcontrollerを探しにいきます。
ディレクトリ分け その2
つぎに、ユーザー側と管理画面側のcontrollerを下記のように別ディレクトリに分けたい、という場面です。
controller
└ user
└ foo.php
└ bar.php
└ admin
└ baz.php
これも簡単で、config/routes.phpに
$route['admin/(:any)'] = "admin/$1"; $route['user/(:any)'] = "user/$1";
と書けばOKです。そのまんまですね。
こうすると、URL中に「admin/」があれば、adminディレクトリ以下を、「user/」があればuserディレクトリ以下のcontrollerを探しにいきます。
ディレクトリ分け その3
つぎに、ユーザー側と管理画面側のcontrollerを下記のように別ディレクトリに分けて、かつユーザー側へのアクセスURLに「user/」はつけたくない、という場面です。
controller
└ user
└ foo.php
└ bar.php
└ admin
└ baz.php
この場合は、config/routes.phpに
$route['admin/(:any)'] = "admin/$1"; $route['(:any)'] = "user/$1";
と書けばOKです。
こうすると、URL中に「admin/」があれば、adminディレクトリ以下を、それ以外はuserディレクトリ以下のcontrollerを探しにいきます。
今回はここまでやでー。
次は、さらにサブディレクトリをつくってみます。