Symfoware

Symfowareについての考察blog

CodeIgniter 3 補助的なクラスの作成方法(General Topics - Creating Ancillary Classes)

CodeIgniter User Guide

General TopicsのCreating Ancillary Classesについて調べてみます。
Creating Ancillary Classes



Creating Ancillary Classes



コントローラークラスでは無いクラスを作成したけど、
CodeIgniterの便利なヘルパーやライブラリを使いたい問うことがあると思います。
そんな時は、get_instance()を使うのが便利です。

get_instance()の戻り値は、CI_Controllerオブジェクトとなります。


コントローラー内では、以下のように$thisを使用してライブラリなどのロードを行います。


  1. $this->load->helper('url');
  2. $this->load->library('session');
  3. $this->config->item('base_url');
  4. // etc.




get_instance()を使用して、コントローラーの参照を得ます。


  1. $CI =& get_instance();




取得したコントローラーの参照を介して、ライブラリのロードが行えます。


  1. $CI =& get_instance();
  2. $CI->load->helper('url');
  3. $CI->load->library('session');
  4. $CI->config->item('base_url');
  5. // etc.




※必ず「&」をつけて参照を取得すること。


具体的なサンプルはこのようになります。


  1. class Example {
  2.     protected $CI;
  3.     // We'll use a constructor, as you can't directly call a function
  4.     // from a property definition.
  5.     public function __construct() {
  6.         // Assign the CodeIgniter super-object
  7.         $this->CI =& get_instance();
  8.     }
  9.     public function foo() {
  10.         $this->CI->load->helper('url');
  11.         redirect();
  12.     }
  13.     public function bar() {
  14.         $this->CI->config->item('base_url');
  15.     }
  16. }





CodeIgniter 3のユーザーガイド(User Guide)まとめ

関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2015/01/25(日) 15:48:04|
  2. PHP
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<CodeIgniter 3 処理のフック(General Topics - Hooks - Extending the Framework Core) | ホーム | CodeIgniter 3 Core Systemの拡張方法(General Topics - Creating Core System Classes)>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1606-9e9a0153
この記事にトラックバックする(FC2ブログユーザー)