Codeigniter 控制器的继承问题

在项目中经常用到这样一种情况,后台中每个页面都要判断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();
......
}
......
}

转自于 http://www.cnblogs.com/hongchenok/archive/2013/02/06/2903698.html

时间: 2024-08-02 00:08:21

Codeigniter 控制器的继承问题的相关文章

什么是codeigniter控制器?

什么是控制器? 简而言之,一个控制器就是一个类文件,是以一种能够和 URI 关联在一起的方式来命名的. 考虑下面的 URI: example.com/index.php/blog/ 上例中,CodeIgniter 将会尝试查询一个名为 Blog.php 的控制器并加载它. 当控制器的名称和 URI 的第一段匹配上时,它将会被加载. 让我们试试看:Hello World! 接下来你会看到如何创建一个简单的控制器,打开你的文本编辑器,新建一个文件 Blog.php , 然后放入以下代码: <?php

ASP.NET MVC 控制器通过继承控制器来达到 过滤 并且多了一个IAuthenticationFilter

原文:ASP.NET MVC 控制器通过继承控制器来达到 过滤 并且多了一个IAuthenticationFilter 暂时没有用到过这个IAuthenticationFilter接口,毕竟已经有三个具体实现类了,所以这个还不知道用在哪,以后看看 20190324 原文地址:https://www.cnblogs.com/lonelyxmas/p/10597461.html

扩展Codeigniter控制器

<?php class MY_Controller extends CI_Controller { public function __construct() { parent::__construct(); if(intval($this->session->userdata('id')) == 0) redirect(site_url('login/index')); } //前台加载视图方法 public function _template($template, $data =

003.CI4框架CodeIgniter, 控制器Controllers的访问地址

01.我们新建一个System文件夹,然后创建一个Login.php类,代码如下: <?php namespace App\Controllers\System; use App\Controllers\BaseController; class Login extends BaseController { // http://127.0.0.1/CI4/public/index.php/home/hello public function index() { return '曾经沧海难为水,除

CodeIgniter学习笔记(九)&mdash;&mdash;扩展控制器

CI的控制器默认继承自CI_Controller,如果要扩展控制器,需要定义一个从CI_Controller派生的控制器,所有的自定义控制器都继承这个新控制器. 在application/core目录下,有与system目录下类似的目录结构,比如core.helpers.language.libraries目录,扩展控制器就是在application/core目录下自定义控制器,该控制器类从CI_Controller继承,类似的,如果要扩展系统的功能,就在application下的对应目录新增自

php codeigniter

1.CI是什么 CI的全称是CodeIgniter, 一个小巧但功能强大的 PHP 框架,作为一个简单而"优雅"的工具包,它可以为 PHP 程序员建立功能完善的 Web 应用程序.基于MVC设计模式,轻量易学,注重安全,文档健全,有丰富的类库. 2.CI能做什么 CI提供了许多丰富的类库,比如文件上传.图片处理.文件压缩.邮件发送等.这些类库的存在大大减低了开发的难度与周期,也减少了整合外部类库的需求.能快速高效的开发各种web应用: 比如电子商务网站.SNS.论坛.内容管理系统(CM

总结Codeigniter的一些优秀特性

总结Codeigniter的一些优秀特性 最近准备接手改进一个别人用Codeigniter写的项目,虽然之前也有用过CI,但是是完全按着自己的意思写的,没按CI的一些套路.用在公众的项目,最好还是按框架规范来,所以还是总结一下,免得以后别人再接手的时候贻笑大方. 1. 首先是 MVC 如果你还不知道 MVC ,应该尽快的学习,你会很快的体会到在 Model 中数据访问,在 Controller 中进行业务逻辑,在 Views 中编写 HTML 代码的价值.如果你之前没有使用过这种模式写过程序,你

Codeigniter的一些优秀实践

最近准备接手改进一个别人用Codeigniter写的项目,虽然之前也有用过CI,但是是完全按着自己的意思写的,没按CI的一些套路.用在公众的项目,最好还是按框架规范来,所以还是总结一下,免得以后别人再接手的时候贻笑大方. 1. 首先是 MVC 如果你还不知道 MVC ,应该尽快的学习,你会很快的体会到在 Model 中数据访问,在 Controller 中进行业务逻辑,在 Views 中编写 HTML 代码的价值.如果你之前没有使用过这种模式写过程序,你也许会皱起额头,不过你应该给自己尝试这样做

Codeigniter

最近准备接手改进一个别人用Codeigniter写的项目,虽然之前也有用过CI,但是是完全按着自己的意思写的,没按CI的一些套路.用在公众的项目,最好还是按框架规范来,所以还是总结一下,免得以后别人再接手的时候贻笑大方. 1. 首先是 MVC 如果你还不知道 MVC ,应该尽快的学习,你会很快的体会到在 Model 中数据访问,在 Controller 中进行业务逻辑,在 Views 中编写 HTML 代码的价值.如果你之前没有使用过这种模式写过程序,你也许会皱起额头,不过你应该给自己尝试这样做