【CodeIgniter3】フックを使ってコントローラーのコアクラスを拡張するクラスを複数作成する方法

【CodeIgniter3】フックを使ってコントローラーのコアクラスを拡張するクラスを複数作成する方法です。

通常CodeIgniterではcoreディレクトリ内にMY_Controllerクラスを作成してコントローラーのコアクラスを拡張しますが、ユーザーページや管理ページ毎にコントローラーのコアクラスを拡張出来たらメソッドの管理がが楽になるのかなと思います。

以下のようにフックを使ってオートローダー機能を追加すればそれが実現できます。

オートローダー機能を追加するためフックを設定

configディレクトリのhooks.phpに以下のコードを追加して下さい。

オートローダークラスをhookディレクトリに設置

hooksディレクトリに以下のファイル(CI_Classes.php)を設置して下さい。

classesディレクトリを追加してAdminコントローラー用の拡張クラスを設置

applicationディレクトリにclassesディレクトリを追加して以下のファイル(Admin_Controller.php)を追加して下さい。

コントローラーの継承元を変更

コントローラーの継承元をAdmin_Controllerに変更します。

以上です。

あとはAdmin_Controllerクラスにメソッドを追加していけば管理ページ用の共通メソッドが管理できます。

フロント用の拡張クラスはFrontend_Controller、ユーザーページ用の拡張クラスはUser_Controllerといった感じで追加していけば良いと思います。

コメントを残す