ci高级用法篇之扩展核心类
来源:互联网 发布:mac桌面上的文件不见了 编辑:程序博客网 时间:2024/05/21 19:49
在上一篇文章ci高级用法篇之创建自己的类库中,你是否觉得每个控制器的构造方法都去执行校验代码其实违背了编程规范中的DRY(do'nt repeat yourself)原则呢?
其实我们完全可以把校验的代码在父类的构造函数中。ci中控制器的父类是CI_Controller,现在我们来扩展这个父类。
在application/core目录下创建一个类文件,MY_Controller.php,内容如下:
<?phpclass MY_Controller extends ci_Controller{public function __construct(){parent::__construct();$this->load->library('auth');$this->auth->checkPower();}}
<?phpdefined('BASEPATH') OR exit('No direct script access allowed');class Welcome extends MY_Controller {/** * Index Page for this controller. * * Maps to the following URL * http://example.com/index.php/welcome *- or - * http://example.com/index.php/welcome/index *- or - * Since this controller is set as the default controller in * config/routes.php, it's displayed at http://example.com/ * * So any other public methods not prefixed with an underscore will * map to /index.php/welcome/<method_name> * @see http://codeigniter.com/user_guide/general/urls.html */public function __construct(){parent::__construct();}public function index(){$this->load->view('welcome_message');}}再次访问http://localhost/ci2/,结果出现了同样的报错信息:
非法访问
注意:
①扩展的类必须申明由父类扩展而来.
②新扩展的类所在的文件必须以 MY_ 为前缀(这个选项是可配置的,下面有说明).
如果不喜欢my作为类前缀,可以在application/config/config.php 文件找到这一项修改为除ci_以外的前缀名:
$config['subclass_prefix'] = 'MY_';
0 0
- ci高级用法篇之扩展核心类
- ci高级用法篇之创建自己的类库
- ci高级用法篇之连接多个数据库
- 【ci框架】扩展系统的核心类
- 【ci框架】自定义扩展的核心控制器类MY_Controller
- CI框架(二)自定义扩展的核心控制器类MY_Controller
- CI---扩展核心类controller, 实现登录控制
- CI核心类
- CI框架 -- 核心文件 之 Benchmark.php
- CI框架源码完全分析之核心文件(输入类)Input.php
- CI框架源码完全分析之核心文件(安全类)Security.php
- CI框架源码完全分析之核心文件(输出类)Output.php
- CI框架源码完全分析之核心文件(UTF8类)Utf8.php
- CI框架源码完全分析之核心文件(URI类)URI.php
- CI框架源码完全分析之核心文件(输入类)Input.php
- ZendFramework学习第三章(核心组件—会话处理之Zend_Session高级用法)
- ZendFramework学习第三章(核心组件—会话处理之Zend_Session高级用法)
- thinkphp5 数据库和模型详解 之4 模型数据处理(核心)和高级用法
- python 爬虫1 开始,先拿新浪微博开始
- 统计学习方法概论
- 通过buildnumber-maven-plugin把svn版本号打入jar或war包中
- JSP之Model1
- TreeSet、TreeMap、HashSet、HashMap底层实现
- ci高级用法篇之扩展核心类
- 冲绳中文离线地图App上线
- Spark源码调试分析(一)-------------调试环境准备
- 一些无特征PHP一句话
- c++ primer 学习笔记-第二章
- union
- eclipse修改编辑字体大小
- hdoj 1005 NUMBER Sequence
- wpf 如何将命名空间导入 XAML