文档章节

CI restful小试(一)

墨梅
 墨梅
发布于 2017/03/17 17:22
字数 751
阅读 76
收藏 0

写在前面: 既然是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标准的框架。今天先写到这里,之后的系列文章会记录我的改造过程。

© 著作权归作者所有

墨梅
粉丝 16
博文 218
码字总数 43367
作品 0
杭州
后端工程师
私信 提问
Jboss RestEasy构建简单的RESTful Web Services示例(1)

项目上要用到webservice,鉴于现在restful webservice比较流行,打算用restful来建立webservice,网上搜了一遍,认为Jboss的RESTEasy比较容易上手,于是就用它来小试牛刀! RESTEasy是JBoss...

Eric_HSBC
2013/08/19
5K
0
huangjacky/Security-CI

#Security-CI 作者: huangjacky QQ: 4462676 Email: huangjacky@163.com 结合日常工作将一些安全特性注入到CodeIgniter框架中,从而使开发更加安全和易用. 代办 1. 完善过滤函数 check_helper...

huangjacky
2015/04/16
0
0
原来是用java 现在用php,说说感受把

哎 原来是做java 后来shopex面试通过后,做php leader 然后一点不会phper 非常的痛苦 ,后来被项目艹了无数遍,然后自己尝试去学习kohana CI等框架 发现php代码确实很轻巧`````` restful确实...

13123123
2016/01/04
5.6K
30
net core Webapi 总目录

目录 博客目录 代码地址 博客目录 net core Webapi基础工程搭建(一)——开发工具及环境 net core Webapi基础工程搭建(二)——创建工程 net core Webapi基础工程搭建(三)——在线接口文...

AprilBlank
08/01
0
0
RESTful CI

GET Used to fetch information about an existing resource. This is used by browsers when you enter a URL and hit go, or when you click on a link, so it perfect for fetching infor......

李有常
2016/09/14
22
0

没有更多内容

加载失败,请刷新页面

加载更多

CSS--列表

一、列表标识项 list-style-type none:去掉标识项 disc:默认实心圆 circle:空心圆 squire:矩形 二、列表项图片 list-style-img: 取值:url(路径) 三、列表项位置 list-style-position:...

wytao1995
今天
10
0
linux 命令-文本比较comm、diff、patch

本文原创首发于公众号:编程三分钟 今天学了三个文本比较的命令分享给大家。 comm comm 命令比较相同的文本 $ cat charabc$ cat chardiffadc 比如,我有两个文件char和chardiff如上,...

编程三分钟
今天
9
0
QML教程

https://blog.csdn.net/qq_40194498/article/category/7580030 https://blog.csdn.net/LaineGates/article/details/50887765...

shzwork
今天
7
0
HA Cluster之5

对于使用heartbeat v2版的CRM配置的集群信息都是保存在一个名为cib.xml的配置文件中,存放在/var/lib/heartbeat/crm/下。CIB:Cluster Information Base,由于xml文件配置不是那么方便,所以...

lhdzw
今天
10
0
玩转Redis-Redis基础数据结构及核心命令

  《玩转Redis》系列文章主要讲述Redis的基础及中高级应用,文章基于Redis5.0.4+。本文主要讲述Redis的数据结构String,《玩转Redis-Redis基础数据结构及核心命令》相关操作命令为方便对比...

zxiaofan666
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部