ci高级用法篇之扩展核心类
2015-07-26 09:55
387 查看
在上一篇文章ci高级用法篇之创建自己的类库中,你是否觉得每个控制器的构造方法都去执行校验代码其实违背了编程规范中的DRY(do'nt
repeat yourself)原则呢?
其实我们完全可以把校验的代码在父类的构造函数中。ci中控制器的父类是CI_Controller,现在我们来扩展这个父类。
在application/core目录下创建一个类文件,MY_Controller.php,内容如下:
在将welcome控制器修改为如下版本,让其继承MY_Controller:
非法访问
注意:
①扩展的类必须申明由父类扩展而来.
②新扩展的类所在的文件必须以 MY_ 为前缀(这个选项是可配置的,下面有说明).
如果不喜欢my作为类前缀,可以在application/config/config.php 文件找到这一项修改为除ci_以外的前缀名:
repeat yourself)原则呢?
其实我们完全可以把校验的代码在父类的构造函数中。ci中控制器的父类是CI_Controller,现在我们来扩展这个父类。
在application/core目录下创建一个类文件,MY_Controller.php,内容如下:
<?php class MY_Controller extends ci_Controller{ public function __construct(){ parent::__construct(); $this->load->library('auth'); $this->auth->checkPower(); } }
在将welcome控制器修改为如下版本,让其继承MY_Controller:
<?php defined('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_';
相关文章推荐
- javascript中setTimeout使用指南
- 枚举 hdu5311 Hidden String
- 大一之路
- 与基类对象和派生类对象相关的赋值兼容问题
- 一些结论
- Linux检测TCP连接断开的一种简单实现方法http://blog.csdn.net/wtewrw/article/details/6547380
- Android向本地写入一个XML文件和解析XML文件
- js基础
- 三极管的电路运用
- 富山中文离线地图App上线
- 使用注解方式配置 AOP 的基本步骤(复习)
- 第一篇博客,而且必须置顶!!!!!!!,永远要在我博客第一位置的一道题,看到的各位如果能给个你们的答案更好,谢谢
- 海上钢琴师
- Scala详解---------数组相关操作
- Poj 2479 Maximum sum【双向DP/最大连续和】
- TFTP的配置与使用
- hdu 2489 Minimal Ratio Tree
- 伊豆中文离线地图App上线
- 安装Nginx服务器及简单优化
- inter处理器台电平板p90h3u6怎么完美root