ci高级用法篇之创建自己的类库

关于ci框架,刚大学毕业的时候用的比较多,也没有接触到比较高级的用法,新入值的公司用了ci框架,借着这个契机研究了一下ci的一些高级用法。

在做web开发的时候我们经常会遇到一个问题,就是后台登录需要验证权限,而且每个页面都要做这个验证,如果在每一个页面都加入校验的代码,就产生了很多重复的代码,这对后期的维护来说十分不利,在ci框架中允许我们创建属于自己的类库,具体实现方式如下:


1、在application/libraries目录下创建一个类文件,Auth.php,内容如下:

<?php
class Auth {

	//校验当前用户是否有权限浏览该网页
    public function checkPower()
    {
    	if(isset($_COOKIE['uid']) && base64_decode($_COOKIE['']) == admin){
    		return;
    	}
    	die('非法操作');
    }
}


这里需要注意一下命名规范:

①文件名首字母大写. 例如:  Myclass.php

②类声明首字母大写. 例如:  class Myclass

③类的名字和文件名应相同.


2、在需要校验权限的页面加入如下代码,以welcome为例:

public function __construct(){
		parent::__construct();
		$this->load->library('auth');
		$this->auth->checkPower();
	}

这样访问http://localhost/ci2/地址的时候,页面出现了报错信息:

非法操作


因为每个action都需要校验,所以我把校验代码写在了构造方法里面,如果你嫌每次都要手动load一遍比较麻烦,可以将auth加入到config/autoload.php文件中:

$autoload['libraries'] = array('auth');

这样以后就可以省去
$this->load->library('auth');

这个步骤了。


按着上面的例子我们可以再创建一个Layout.php,用于左右分栏的后台样式输出,具体代码如下:

<?php

class Layout {
	
	private $ci;
	
	public function __construct() 
	{
		
		$this->ci = & get_instance ();

	}
	
	/**
	 * *
	 *
	 * 模板显示
	 *
	 * @param $view 模板名称        	
	 *
	 * @param $data 模板变量数组        	
	 *
	 *
	 */
	
	public function view($view = '', $data = '') 
	{
		$this->ci->load->view ( 'backend/public/headerV',$data );
		
		$this->ci->load->view ( 'backend/public/menuV' );
		
		if ($view)
		{
			$this->ci->load->view ( 'backend/'.$view, $data );
		}
        $this->ci->load->view ( 'backend/public/footerV' );
        
	}
    public function excelView($view = '', $data = '')
    {
            $this->ci->load->view ( 'backend/'.$view, $data );
    }

}
我们再在后台的控制器中的action加入如下代码即可:

$this->load->library('layout');
$this->layout->view();


 


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dongxie548

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值