Codeigniter控制器controller继承问题实例分析

本文实例讲述了Codeigniter控制器controller继承问题。分享给大家供大家参考,具体如下:

在项目中经常用到这样一种情况,后台中每个页面都要判断Session来确定用户是否登陆状态.对于在Codeigniter中,那么就会考虑每个控制器继承一个公用控制器。

比如:AdminBase 为应用后台的公用的控制器,在每一个应用后台控制器里面都来继承公共的AdminBase ,但是同时要确保AdminBase 也是继承CI_Controller的。

前台HomeBase也是同样的道理。

具体实现很简单,只要在application/core下面新建MY_Controller.php,如下
(MY_是可配置的,application/config/config.php 文件并找到这一项:$config['subclass_prefix'] = 'MY_';)

class MY_Controller extends CI_Controller
{
function __construct()
{
parent::__construct();
}
}
class AdminBase extends MY_Controller
{
function __construct()
{
parent::__construct();
......
}
......
}
class HomeBase extends MY_Controller
{
function __construct()
{
parent::__construct();
......
}
......
}

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

class Blog extends AdminBase
{
function __construct()
{
parent::__construct();
......
}
......
}

更多关于CodeIgniter框架相关内容感兴趣的读者可查看本站专题:《codeigniter入门教程》

希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。

(0)

相关推荐

  • CI框架给视图添加动态数据

    数据通过控制器以一个数组或是对象的形式传入视图 , 这个数组或对象作为视图载入函数的第二个参数如果你使用一个对象,那么类变量将转换为数组元素.好了,让我们用你的控制器试试.打开控制器并添加以下代码 <?php class Blog extends CI_Controller {    function index()  {   $data['title'] = "My Real Title";   $data['heading'] = "My Real Heading&

  • CodeIgniter视图使用注意事项

    本文讲述了CodeIgniter视图使用注意事项.分享给大家供大家参考,具体如下: CI中视图即application/views/下的模版文件,模版中支持直接使用PHP,所以模版的实现没有太多好说的,说几点视图的注意事项: 1.CI的视图可以在控制器中load多个视图,页面最后将这些内容组合起来后输出.这里load的动作如果交给控制器去做,需要调整模版结构时就需要调整控制器,这不太好.可以在控制器中进行封装或者直接交给视图去做,保证每个ACTION都只load一个视图文件. 2.让视图做它擅长

  • CodeIgniter自定义控制器MY_Controller用法分析

    本文实例讲述了CodeIgniter自定义控制器MY_Controller用法.分享给大家供大家参考,具体如下: Codeigniter所有的控制器都必须继承CI_Controller类,但CI_Controller类位于system目录下,不太方便修改.为方便做一些公用的处理,通常情况下我们会在core下创建MY_Controller,用来继承CI_Controller,从而项目中所有的控制器继承MY_Controller. 那么,MY_Controller 通常会做些什么呢? 所有的控制器都

  • CI框架入门之MVC简单示例

    本文实例讲述了CI框架入门之MVC简单示例.分享给大家供大家参考,具体如下: 最简单的CI模型: 注意:模型需要用到数据库 配置文件在appcation/config.php 这里我们要用到数据库,需要将databases.php中的相关参数填写一下,具体不再赘述. 直接进入主题: MVC: 1.首先谈"M" 模型 CI中的模型存放在application/models文件夹里 命名规则是:类名_model.php 文件中只包含一个类: 如: class Nb_model extend

  • CodeIgniter php mvc框架 中国网站

    我们很高兴的宣布 CodeIgniter 1.6.2 版正式发布.本次发布包括超过 29 个 BUG 修复和 34 个功能补充和增强.这些内容包括:改善"Active Record"与事务性数据库的交互:引入一个常量文件:改善 Zip 类库:一个兼容性辅助函数:为文件辅助函数增加新的功能:从框架文件中删除 PHP 的关闭标记:还有许多其他的内容.更多细节请查看更改记录! 欢迎使用 CodeIgniter CodeIgniter 是一套给 PHP 网站开发者使用的应用程序开发框架和工具包

  • CI(CodeIgniter)模型用法实例分析

    本文实例分析了CI(CodeIgniter)模型用法.分享给大家供大家参考,具体如下: MVC中的业务逻辑放在控制器中或者模型里都是不合适的,所以这里对业务逻辑进行了分离,多出一层用来处理业务逻辑,模型就只当作数据访问层,这样子模型将会变得比较轻.CI中并未通过实体对象来传参,参数的传入和返回都由开发者控制,比较灵活.很多情况下都会以数组的方式传入或者返回. 模型的使用也比较简单,这里只提一下使用前想到的几个问题吧. 1.既然已经有了数据访问层了,那我们就应当避免在控制器或者某些类中直接通过SQ

  • 2个Codeigniter文件批量上传控制器写法例子

    例子一: /** * 多文件上传 * * @author Dream <dream@shanjing-inc.com> */ public function multiple_uploads() { //载入所需类库 $this->load->library('upload'); //配置上传参数 $upload_config = array( 'upload_path' => '', 'allowed_types' => 'jpg|png|gif', 'max_siz

  • CodeIgniter控制器之业务逻辑实例分析

    本文实例分析了CodeIgniter控制器之业务逻辑.分享给大家供大家参考,具体如下: 前面分析了公用控制器按模块分发,方便对特定模块的控制,而具体的实现类则是放在library中.那放在library中是否合适呢?以及控制器中更多的业务逻辑该放在哪里? 先说下对CI中几个文件夹的理解 helpers.libraries: 存放一系列辅助函数.辅助类,用来辅助控制器.业务逻辑实现功能.他们中的方法应当尽量避免与CI依赖,依赖越紧越难以复用.以邮件发送为例,发送邮件时很多参数是不变的,如编码.协议

  • CI映射(加载)数据到view层的方法

    本文实例讲述了CI映射(加载)数据到view层的方法.分享给大家供大家参考,具体如下: CI有个恶心的东西,就是需要把所有的数据都要放到$data数组中才能映射到view层,如: 当前我从数据库的link表(友情链接表,字段:id  name   url),搜索出来的数据方式: $query = $this->db->query("select id,name,url from cg_link where 1"); $links = $query->result();

  • Codeigniter控制器controller继承问题实例分析

    本文实例讲述了Codeigniter控制器controller继承问题.分享给大家供大家参考,具体如下: 在项目中经常用到这样一种情况,后台中每个页面都要判断Session来确定用户是否登陆状态.对于在Codeigniter中,那么就会考虑每个控制器继承一个公用控制器. 比如:AdminBase 为应用后台的公用的控制器,在每一个应用后台控制器里面都来继承公共的AdminBase ,但是同时要确保AdminBase 也是继承CI_Controller的. 前台HomeBase也是同样的道理. 具

  • python类的继承链实例分析

    1.子类可以继承父类,同样,父类也可以继承自己的父类,一层一层地继承. class A: def have(self): print('I hava an apple') class B(A): pass class C(B): pass 2.如果想判断一个类别是否是另一个类别的子类别,可以使用内置函数issubclass(). >>> issubclass(C, A) True >>> issubclass(B, A) True >>> issubc

  • javascript原型链继承用法实例分析

    本文实例分析了javascript原型链继承的用法.分享给大家供大家参考.具体分析如下: 复制代码 代码如下: function Shape(){   this.name = 'shape';   this.toString = function(){    return this.name;   }  }    function TwoDShape(){   this.name = '2D shape';  }  function Triangle(side,height){   this.n

  • JS继承用法实例分析

    本文实例分析了JS继承的用法.分享给大家供大家参考.具体分析如下: 继承 : 子类不影响父类,子类可以继承父类的一些功能 ( 代码复用 ) 属性的继承 : 调用父类的构造函数 call 方法的继承 : for in :  拷贝继承 (jquery也是采用拷贝继承extend) 1. 拷贝继承 function Person (name){ this.name = name; } Person.prototype.showName =function (){ alert(this.name); }

  • JavaScript中继承用法实例分析

    本文实例分析了JavaScript中继承的用法.分享给大家供大家参考.具体如下: // define the Person Class function Person() {} Person.prototype.walk = function(){ alert ('I am walking!'); }; Person.prototype.sayHello = function(){ alert ('hello'); }; // define the Student class function

  • wxPython窗口的继承机制实例分析

    本文实例讲述了wxPython窗口的继承机制,分享给大家供大家参考.具体分析如下: 示例代码如下: import wx class MyApp(wx.App): def OnInit(self): self.frame = MyFrame(None, title = "My Main Frame jb51.net") self.SetTopWindow(self.frame) self.frame.Show() return True class MyFrame(wx.Frame):

  • python类继承用法实例分析

    本文实例讲述了python类继承用法.分享给大家供大家参考.具体方法如下: #!/usr/bin/python # Filename: inherit.py class SchoolMember: '''Represents any school member.''' def __init__(self, name, age): self.name = name self.age = age print'(Initialized SchoolMember: %s)'% self.name def

  • CodeIgniter配置之SESSION用法实例分析

    本文实例讲述了CodeIgniter配置之SESSION用法.分享给大家供大家参考,具体如下: 刚使用Codeigniter时也被其中的SESSION迷惑过,后来就再也没用过CI自带的SESSION,想必还是有必要整理一下SESSION.为弄清CI中的SESSION,先来说一下PHP中SESSION是如何工作的.由于HTTP协议本身是无状态的,所以当保留某个用户的访问状态信息时,需要客户端有一个唯一标识传给服务端,这个唯一标识就是SESSION ID,存放在客户端的COOKIE中,然后服务端根据

  • django框架面向对象ORM模型继承用法实例分析

    本文实例讲述了django框架面向对象ORM模型继承用法.分享给大家供大家参考,具体如下: Django ORM对模型继承的支持,将python面向对象的编程方法与数据库面向关系表的数据结构结合的很巧妙.支持三种风格的模型继承. 1.抽象类继承:父类继承自models.Model,但不会在底层数据库中生成相应的数据表,父类的属性列存储在其子类的数据表中. 2.多表继承:多表继承的每个模型类都在底层数据库中生成相应的数据表管理数据. 3.代理模型继承:父类用于在底层数据库中管理数据表,而子类不定义

随机推荐