price-change:blog

色んな情報テンコモリ

CodeIgniter のコントローラにまつわるお話

自分向け補足メモ。

  • URIの第2セグメント、いわゆるメソッド呼び出し部分は、コントローラに _remap() メソッドを追加することで再定義できる!但し、追加すると常に呼び出されるので注意!
  • データ処理済みの出力をさらに処理したい場合は、コントローラに _output() メソッドを追加して処理できる。例えば...
    
    <?php
    class HelloWorld extends Controller {
    
    	function index()
    	{
    		$this->load->view('helloworld_view');
    	}
    
    	function _output($output)
    	{
    		echo $output.'@';
    	}
    
    }
    ?>
    
    とすると、ビューに @ が追記されて表示されるようになる。_remap() メソッド同様、これも常に呼び出されるので注意!
  • メソッドの呼び出しを禁止したい場合は、メソッド名の先頭にアンダースコアを書くこと。すると http://www.example.com/hoge/_foo/ ようなURLにアクセスしても、_foo() メソッドは呼ばれない。
  • コントローラは通常 application/controllers フォルダの中に入れてあるが、ファイルが多くなったりしてフォルダ分け(サブフォルダ)した場合は、http://www.example.com/folder/class/function/ID でアクセスできる。また、URI ルーティング 機能を利用すれば、いじることも可能。
  • コントローラクラスのコンストラクタを使用する場合は、必ず parent::Controller(); で親クラスのコンストラクタを呼び出す。上書きするのを防ぐため。
  • 予約済みのメソッドがあるので注意

テーマ:PHP - ジャンル:コンピュータ

トラックバック

トラックバックURLはこちら
http://pricewave.blog110.fc2.com/tb.php/12-3b414b4f
この記事にトラックバックする(FC2ブログユーザー)

ホームページ アフィリエイト レンタルサーバー FC2ブログ