Belial
philo****@gmail*****
2009年 12月 8日 (火) 19:31:51 JST
Kenjiさん 返信ありがとうございます。 「幾つか分割したい機能があるので、ご提案頂いた方法は・・・」と書こうとして、 ふとご提案頂いた方法でも良い気がしてきました。 Viewは共有できるので、/admin以下は全てコントローラを用意すればOKっぽいですね。 認証の処理はadmin.phpに入れなければ!と変に考えすぎていたようです。 ありがとうございます。 当初の話題と違うのでこのまま聞くのは間違っているかもしれませんが、 各Controllerが継承する親クラスを独自に作る場合MY_Controllerの一つしか 用意出来ないのでしょうか。 質問を考えている間に、pre_controllerで親クラス予定をrequireするなどフックをうまく利用すれば、 複数用意出来る気がしてきたので、時間が出来たときに試してみます。 2009年12月8日18:34 Kenji Suzuki <kenji****@gmail*****>: > Kenji です。 > > > On Tue, 8 Dec 2009 18:04:57 +0900 > Belial <philo****@gmail*****> wrote: > >> はじめまして、柴田と申します。 >> >> コントローラについて悩んでおり、良い方法があれば教えて頂ければと思い投稿しました。 >> >> 説明が下手で申し訳無いのですが、現在管理画面を作成しており、一部機能のコントローラを >> サブディレクトリに配置したいと考えています。 >> 例えば、以下のようにコントローラを配置し >> >> controller/ >> -admin.php >> + admin/ >> -user.php >> >> 管理画面のURLが http://example.com/admin >> で、admin.php というコントローラが起動しメニューの表示などを行い、 >> ユーザの追加処理は http://example.com/admin/user/insert >> で、adminフォルダにあるuser.php というコントローラを起動したいのですが、CIで普通に >> http://example.com/admin/user/insertにアクセスすると、 >> admin.phpのuserメソッドが実行されます。 > > ちょっと、要求と違うかもしれませんが、 > > controller/admin/ > index.php > user.php > > として、http://example.com/admin で index.php が実行される > ようにする、だとどうでしょう? > > > // Kenji > > >> adminフォルダを別の名前にし、ルーティングを行うしか方法を考えたのですが、 >> URLとディレクトリ構成が一致している方が望ましいため、上記の形で出来る方法を >> さがしております。 >> >> 一応無理矢理な方法として、以下のようなメソッドをadmin.phpに追加してみましたが、 >> 良い方法とは思えません。 >> >> function user($arg = "",$arg2=""){ >> include(APPPATH.'controllers/admin/user.php'); >> $user = new User(); >> if(method_exists($user,$arg)){ >> $user->$arg($arg2); >> } >> else{ >> $user->index(); >> } >> } >> >> 宜しければお知恵をお貸し下さい。 >> よろしくお願いします。 >> >> _______________________________________________ >> Codeigniter-users mailing list >> Codei****@lists***** >> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users > > _______________________________________________ > Codeigniter-users mailing list > Codei****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users >