cosarin.com

こさりんのブログ

Codeigniterのコアクラスの拡張方法

      2015/10/23


最近業務でCodeigniterを使って開発をしていて、coreクラスの拡張をやったので、備忘録も兼ねて共有しようと思います。

Codeigniterとは

Codeigniterとは、軽量・高速のPHPフレームワークです。中・小規模の開発に向いていて、対応しているPHPのバージョンも多いことから最近人気で、よく利用します。

今回やること

今回は各ページでの共通で使用するログイン認証の実装をします。普通なら各ページの__construct()内で毎回書かないといけないようなものを、共通のコントローラーを通すことでコードを管理しやすくします。

実装方法

まず、application/core以下にMY_Controller.phpを作成します(ファイル名の大文字・小文字も区別されるので注意が必要です)。MY_ControllerはCI_Controllerを継承します。初期設定で’MY_’という接頭辞が設定されていますが、config.phpで変更することも可能です。

class MY_Controller extends CI_Controller {

    function __construct()
    {
        parent::__construct();

        //セッションにログイン情報がなければログインページヘリダイレクト
        $login = $this->session->userdata('login');
        if($login === FALSE)
        {
            //失敗時の処理
            //ログインページへのリダイレクトなど
        }
    }
}

次にログインチェックしたいページでMY_Controllerを継承します。

class Welcome extends MY_Controller {

    function __construct()
    {
        parent::__construct();
    }

    function index()
    {
        $this->load->view('welcome_message');
    }
}

MY_Controllerを継承したページではログインチェックの処理が走ります。

以上です。ありがとうございました。


 - PHP