コア ディレクトリを介してデフォルトの CI_Controller を拡張できます
application/core/MY_Controller.php: (MY_ 部分は config.php で定義されています)
class BaseController extends CI_Controller {
public function __construct() {
parent::__construct();
$this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate, no-transform, max-age=0, post-check=0, pre-check=0");
$this->output->set_header("Pragma: no-cache");
}
}
次に、コントローラーで次を使用します。
class ControllerXYZ extends BaseController {
//your code
}
BaseController の機能を必要としないコントローラーがある場合は、basecontroller から拡張するのではなく、CI_Controller から拡張します。
class ControllerXYZ extends CI_Controller {
//your code without the headers set
}
これには、各コントローラーが必要とするより多くのコードを重複排除するという利点もあります。たとえば、誰かがログインしているかどうかを確認するには、次のようにすることができます。
class BaseController extends CI_Controller {
public function __construct() {
parent::__construct();
$this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate, no-transform, max-age=0, post-check=0, pre-check=0");
$this->output->set_header("Pragma: no-cache");
if(!$this->session->userdata('loggedIn') === True) {
redirect('/loginpage');
}
}
}
詳細については、 https://ellislab.com/codeigniter/user-guide/general/core_classes.htmlを参照してください。