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)まとめ

関連記事

コメント

プロフィール

Author:symfo
blog形式だと探しにくいので、まとめサイト作成中です。
https://symfo.web.fc2.com/

PR

検索フォーム

月別アーカイブ