[CodeIgniter]BaseController
共通関数を設定する時は必要。
各ControllerはこのBaseControllerをextendsする。しなくてもよい。
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class BaseController extends CI_Controller { public function __construct(){ parent::__construct(); if(!isset($_SERVER['PATH_INFO'])){ $_SERVER['PATH_INFO'] = strtok($_SERVER['REQUEST_URI'],'?'); } $this->data['class'] = $this->router->class; $this->data['method'] = $this->router->method; $this->data['uri'] = uri_string(); //ログインしている if($this->session->userdata("is_logged_in")){ //ログインページの時 -> ホームへリダイレクト if(in_array($this->data['class'],array('login'))){ redirect('/'); } //ログインしてない }else{ //ログインページではない && 登録ページではない -> ログインページへリダイレクト if (!in_array($this->data['class'], array('login', 'regist'))) { redirect('/login/'); } } } protected function get_template_name($name='') { return $this->get_class_method_string($name, '/', 2); } protected function get_class_method_string($name = '',$delimiter = '/',$backtrace_count = 1) { if(!empty($name)){ return strtolower(get_class($this)) . $delimiter . $name; } $backtraces = debug_backtrace($limit=2); return strtolower(get_class($this)) . $delimiter . $backtraces[$backtrace_count]['function']; } protected function has_post_data() { return !empty($this->input->post()); } protected function post($index = NULL, $xss_clean = NULL, $default = '') { $data = $this->input->post($index, $xss_clean); return empty($data) ? $default : $data; } public function view($template='',$data=[],$header='common/header',$footer='common/footer'){ $this->load->view($header, $data); if(is_array($template)){ foreach($template as $tmpl){ $this->load->view($tmpl, $data); } }else { $this->load->view($template, $data); } $this->load->view($footer,$data); } protected function var_dump($data = null) { echo '<pre>'; if(empty($data)){ var_dump($this->data); }else{ var_dump($data); } echo '</pre>'; } }