ええやんブログ

ええやないかのええやんブログ

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を探しにいきます。

今回はここまでやでー。
次は、さらにサブディレクトリをつくってみます。