欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

CodeIgniter 基类的继承 父类的继承

    开发一个总后台需要在基类里面判断session是否登陆,不可能在每一个控制器的构造方法里面挨个判断,所以就需要一个后台的基类来判断,每一个控制器继承这个基类。AdminBase 为应用后台的公用的控制器,在每一个应用后台控制器里面都来继承公共的AdminBase ,但是同时要确保AdminBase 也是继承CI_Controller的。

    具体实现很简单,只要在application/core下面新建MY_Controller.php,代码如下

(MY_是可配置的,application/config/config.php 文件并找到这一项:$config['subclass_prefix'] = 'MY_';)

<?php
/**
 * 扩展 Controller
 */
class MY_Controller extends CI_Controller
{
    function  __construct()
    {
        parent::__construct();
    }
}
/**   后台管理基类
 /
class AdminBase extends MY_Controller
{
    function  __construct()
    {
        parent::__construct();
        / 验证session是否登陆 /
        $admin_sess = $this->session->userdata( 'admin' );
        if ( isset( $admin_sess ) && $admin_sess['admin_id'] != '' )
        {
            / Success Login ... /
        }
        else
        {
            error( '请登录后台', site_url() . '/AdminLogin/login' );
        }
    }
}
/**   会员基类
 /
class UserBase extends MY_Controller
{
    function  __construct()
    {
        parent::__construct();
    }
}

/**   前台基类
 /
class HomeBase extends MY_Controller
{
    function  __construct()
    {
        parent::__construct();
    }
}


 

 

 

 

然后在application/controllers里面的控制器就可以继承了,比如application/controllers/AdminIndex.php中

<?php

defined('BASEPATH') OR exit('No direct script access allowed');

 

/**   管理后台主页
 
/
class AdminIndex extends AdminBase
{

    /**       构造方法
     
 @author Yusure  http://yusure.cn
      @date   2016-09-13
     
 @param  [param]
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**       后台主页
     
 @author Yusure  http://yusure.cn
      @date   2016-09-13
     
 @param  [param]
      @return [type]     [description]
     
/
    public function index()
    {
        $this->load->view( 'AdminIndex_index' );
    }
}

普通分类: