CI restful小试(一)

写在前面: 既然是CI学习,当然要由浅入深,所以在说restful改造方案之前,先说说CI框架本身的哪些事儿。

CI 框架整体属于单例模式,为什么这么说?要是各位有心,在应用控制器中输出一下 $this 这个对象就会发现,CI框架的核心类实例基本都以属性的形式赋给了 $this 这个对象。 属性较多只展示部分

那 $this 这个对象有是什么? 其实他就是核心类(system/core中的类)中controller的实例,有心的同学看看这个类的实现方式就会知晓,CI将其他核心类的实例都赋值到了controller的属性上。所以,使用CI框架的核心就是要了解如何使用控制器对象即 $this 这个对象。

下面我们做一个小测试看看如何学会使用 $this 这个对象。 我们按部就班的来做,首先我们再 application/controller 下新建一个控制器类 本例使用:Index.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
 * 类名符合CI命名规则,与文件名一致
 */
class Index extends CI_Controller{
        /*
         * 在本类里我们创建了一个默认方法
         * 在index方法中我们打印了$this这个对象
         */
	public function index(){
		var_dump($this);
                exit();
	}
}

现在我们访问这个方法 http://hostname/index.php/index(控制器名)/index(方法名) 发现了吗?这个方法的输出和我上面的图片一样。 你会发现CI框架所有的核心类实例都以属性的形式附在控制器对象里面 所以我们就可以像调用普通属性一样调用他们。 例:

defined('BASEPATH') OR exit('No direct script access allowed');
/*
 * 类名符合CI命名规则,与文件名一致
 */
class Index extends CI_Controller{
        /*
         * 还是index方法
         */
	public function index(){
                //加载试图文件
		$this->load->view('视图文件名');
                //加载扩展类
                $this->load->library('扩展类名');
                //调用配置文件属性
                $config = $this->config->item('配置文件$config数组键名');
                ...
                其他功能自己发掘
	}
}

那我们从入口文件又是怎么实例化了这个controller并调用了index这个类的index方法呢,我们用一个图来展示

调用说明图

在CodeIgniter.php中 CI使用call_user_func_array(array(&$CI, $method), $params);来调用应用类。

了解了如何使用控制器,这也只是了解了如何使用CI框架本身,和我们主题关系并不大,但要实现对CI框架的改造,我们首先要对框架本身有一定了解,有了这些基础我们就可以开始来修改这个框架让它变成一个符合restful标准的框架。今天先写到这里,之后的系列文章会记录我的改造过程。

转载于:https://my.oschina.net/u/1036767/blog/861558

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值