[Codeigniter-users] ユーザガイドの修正(general/controllers.html#remapping)

Back to archive index

Kenichi Ando(Neo,Inc) ando****@neo-n*****
2007年 12月 6日 (木) 12:34:00 JST


bossatamaです。

非常にわかりやすかったです。
具体的な例って素晴らしいですね。
ありがとうございました。
「_remap」は深いですね。


On Thu, 06 Dec 2007 10:51:36 +0900
cilab <webma****@cilab*****> wrote:

> CILabです
> 
> Kenjiさんが言っているのは、「$this->メンバー変数」のことでなく、
> 
> たとえば、再マップしようとする時、
> 1) 特定の場合だけ従来通りのルールでメソッドを呼び出したい場合
> 2) 特定の場合以外は従来通りのルールでメソッドを呼び出したい場合
> の2パターンがあって、
> マニュアルのコードは、色々な使い方が想定されるかもしれませんが、
> たとえば、 1)のパターンの場合の例では?
> 
> ということですよね?
> 
> たとえばショッピングカートなどの商品の表示に関するクラスがあったとして:
> 
> class Product extends Controller
> {
> function Product(){
> parent::Controller();
> }
> 
> function _remap($method)
> {
> if ($method == 'listup_all')
> {
> $this->$method();
> //$this->listup_all(); としてもOK
> }
> else
> {
> $this->detail($method);
> //$methodにはproductIdが入るのを想定
> }
> }
> 
> function detail($productId){
> echo 'productID='.$productId.'の商品詳細のページを表示';
> }
> 
> function listup_all(){
> echo 'すべての商品をリストアップする';
> }
> }
> 
> 
> /*
> 
> このコンテキストでは
> 
> URL:index.php/product/[商品ID]
> のときは、 detail([商品ID]); で商品ページを表示
> (URLでメソッド名「detail」を省略した形式を使えるようにする)
> 
> ただし、URL:index.php/product/listup_all
> の時だけは、普通に listup_all(); を呼び出して商品一覧を表示する
> 
> */
> 
> 私も、typoでなくて、これはこれで良いように思えます。
> 
> >
> > CI本家のフォーラムに投げてみるのがいいんじゃないでしょうか?
> >
> >

本家に投げるのはちょっとやめておきます。
我々がユーザーガイドの意図を説明できれば問題ないと思いますので。
(というか私だけが脳内エラー起こしてだけ?)

//bossatama




Codeigniter-users メーリングリストの案内
Back to archive index