php ci3.0 restful,CI restful小试(一)

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

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

94c11fd94fa8b322ccfd19ad6f6de965.png

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

下面我们做一个小测试看看如何学会使用 $this 这个对象。 我们按部就班的来做,首先我们再 application/controller 下新建一个控制器类 本例使用:Index.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方法呢,我们用一个图来展示

51d89c4c1d4b65e50f632bb81723e46e.png

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

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值