CodeIgniter 3 補助的なクラスの作成方法(General Topics - Creating Ancillary Classes)
CodeIgniter User GuideGeneral TopicsのCreating Ancillary Classesについて調べてみます。
Creating Ancillary Classes
Creating Ancillary Classes
コントローラークラスでは無いクラスを作成したけど、
CodeIgniterの便利なヘルパーやライブラリを使いたい問うことがあると思います。
そんな時は、get_instance()を使うのが便利です。
get_instance()の戻り値は、CI_Controllerオブジェクトとなります。
コントローラー内では、以下のように$thisを使用してライブラリなどのロードを行います。
- $this->load->helper('url');
- $this->load->library('session');
- $this->config->item('base_url');
- // etc.
get_instance()を使用して、コントローラーの参照を得ます。
- $CI =& get_instance();
取得したコントローラーの参照を介して、ライブラリのロードが行えます。
- $CI =& get_instance();
- $CI->load->helper('url');
- $CI->load->library('session');
- $CI->config->item('base_url');
- // etc.
※必ず「&」をつけて参照を取得すること。
具体的なサンプルはこのようになります。
- class Example {
- protected $CI;
- // We'll use a constructor, as you can't directly call a function
- // from a property definition.
- public function __construct() {
- // Assign the CodeIgniter super-object
- $this->CI =& get_instance();
- }
- public function foo() {
- $this->CI->load->helper('url');
- redirect();
- }
- public function bar() {
- $this->CI->config->item('base_url');
- }
- }
CodeIgniter 3のユーザーガイド(User Guide)まとめ
- 関連記事
-
- CodeIgniter 3 ヘルパー、ライブラリの自動ロード(General Topics - Auto-loading Resources)
- CodeIgniter 3 処理のフック(General Topics - Hooks - Extending the Framework Core)
- CodeIgniter 3 補助的なクラスの作成方法(General Topics - Creating Ancillary Classes)
- CodeIgniter 3 Core Systemの拡張方法(General Topics - Creating Core System Classes)
- CodeIgniter 3 独自Driverの作り方(General Topics - Creating Drivers)
コメント