CI restful小试(一)

写在前面: 既然是CI学习,固然要由浅入深,因此在说restful改造方案以前,先说说CI框架自己的哪些事儿。php

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

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

下面咱们作一个小测试看看如何学会使用 $this 这个对象。 咱们循序渐进的来作,首先咱们再 application/controller 下新建一个控制器类 本例使用:Index.phpapp

<?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标准的框架。今天先写到这里,以后的系列文章会记录个人改造过程。this

相关文章
相关标签/搜索