CodeIgniter核心类,库类阅读

作者:烨竹

目录结构


先介绍目录结构上面箭头没有指向的文件
compat兼容性函数所在文件夹
具体见:兼容性函数

CodeIgniter.php框架核心文件
作用参见下图:


common.php
具体见公共函数

controller.php
控制器父类
看源码,里面就两个功能
实现CI可以作为一个大超级对象运行
实现get_instance

Exceptions.php
错误处理类

hooks.php
钩子类

log.php
日志处理类

model.php
模型父类

Driver.php
库类驱动文件

profiler.php
类似debug的调试工具
用法:Profiler类将显示基准测试结果

下面通篇引用:http://codeigniter.org.cn/user_guide/libraries/index.html

Benchmark.php 基准测试类(程序分析)

一直都是启用状态的基准测试类,用于计算两个标记点之间的时间差

作用用法:
显示总执行时间
显示内存占用

日历类

使用日历类可以让你动态的创建日历,并且可以使用日历模板来格式化显示你的日历

作用用法
日历类

cache 缓存驱动器类
可选 PHP 缓存(APC)
基于文件的缓存
Memcached 缓存
WinCache 缓存
Redis 缓存

配置类

配置类用于获取配置参数,这些参数可以来自于默认的配置文件(application/config/config.php), 也可以来自你自定义的配置文件

用法 :
手工加载
自动加载

email类

用法:
发送 Email

加密类(新版)

绝不要使用这个类或其他任何加密类来进行密码处理!密码应该是被 哈希 ,你应该使用 PHP 自带的 密码哈希扩展
加密类提供了双向数据加密的方式,为了实现密码学意义上的安全,它使用了一些并非在所有系统上都可用的 PHP 的扩展, 要使用这个类,你的系统上必须安装了下面的扩展:
OpenSSL
MCrypt (要支持 MCRYPT_DEV_URANDOM)
只要有一点不满足,我们就无法为你提供足够高的安全性

使用:
对数据进行加密与解密

文件上传类

CodeIgniter 的文件上传类用于上传文件,你可以设置参数限制上传文件的类型和大小

上传一个文件通常涉及以下几步:
显示一个上传表单,用户选择文件并上传。
当提交表单时,文件将被上传到你指定的目录。
同时,根据你设置的参数对文件进行校验是否允许上传。
上传成功后,向用户显示成功消息。

用法:## 参考指南
初始化文件上传类
参数设置
参数
在配置文件中设置参数

表单验证

CodeIgniter 提供了一个全面的表单验证和数据预处理类可以帮你少写很多代码

操作用法
表单验证指南
表单
成功页面
控制器
试一下!
解释
设置验证规则
使用数组来设置验证规则
级联规则(Cascading Rules)
预处理数据
重新填充表单
回调:你自己的验证函数
使用任何可调用的方法作为验证规则
设置错误信息
翻译表单域名称
更改错误定界符
单独显示错误
验证数组(除 $_POST 数组)
将一系列验证规则保存到一个配置文件
如何保存你的规则
创建规则集
调用某组验证规则
将控制器方法和规则集关联在一起

FTP类

CodeIgniter 的 FTP 类允许你传输文件到远程服务器,也可以对远程文件进行移动、重命名或删除操作。 FTP 类还提供了一个 "镜像" 功能,允许你将你本地的一个目录通过 FTP 整个的同步到远程服务器上

用法:
使用 FTP 类
初始化类
使用示例

图像处理类

CodeIgniter 的图像处理类可以使你完成以下的操作:
调整图像大小
创建缩略图
图像裁剪
图像旋转
添加图像水印
可以很好的支持三个主流的图像库:GD/GD2、NetPBM 和 ImageMagick

使用:
添加图像水印
水印的两种类型
给图像添加水印
水印处理参数

输入类

输入类有两个用途:
为了安全性,对输入数据进行预处理
提供了一些辅助方法来获取输入数据并处理

用法:
对输入进行过滤
安全性过滤
XSS 过滤
访问表单数据
使用 POST、GET、COOKIE 和 SERVER 数据
使用 php://input 流

加载器类

加载器,顾名思义,是用于加载元素的,加载的元素可以是库(类),视图文件驱动器辅助函数模型 或其他你自己的文件

用法:
应用程序"包"
包的视图文件

迁移类

迁移是一种非常方便的途径来组织和管理你的数据库变更,当你编写了一小段 SQL 对数据库做了修改之后,你就需要告诉其他的开发者他们也需要运行这段 SQL , 而且当你将应用程序部署到生产环境时,你还需要记得对数据库已经做了哪些修改, 需要执行哪些 SQL

配置文件: application/config/migration.php

用法
迁移文件命令规则
创建一次迁移
使用范例
迁移参数
类参考

输出类

输出类是个核心类,它的功能只有一个:发送 Web 页面内容到请求的浏览器。 如果你开启缓存,它也负责 缓存 你的 Web 页面

这个类由系统自动加载,你无需手工加载

分页类

CodeIgniter 的分页类非常容易使用,而且它 100% 可定制,可以通过动态的参数, 也可以通过保存在配置文件中的参数

用法
自定义分页
添加封装标签
自定义第一个链接
自定义最后一个链接
自定义下一页链接
自定义上一页链接
自定义当前页面链接
自定义数字链接
隐藏数字链接
给链接添加属性
禁用 "rel" 属性

模板解析类

模板解析类可以对你视图文件中的伪变量进行简单的替换,它可以解析简单的变量和变量标签对

用法:
使用模板解析类

安全类

安全类包含了一些方法,用于安全的处理输入数据,帮助你创建一个安全的应用。

用法
XSS 过滤
跨站请求伪造(CSRF)

Session 类

Session(会话)类可以让你保持一个用户的 "状态" ,并跟踪他在浏览你的网站时的活动。

CodeIgniter 自带了几个存储 session 的驱动:

  • 文件(默认的,基于文件系统)
  • 数据库
  • Redis
  • Memcached

用法
使用 Session 类

HTML表格类

表格类提供了一些方法用于根据数据库或数据库结果集自动生成HTML的表格。

用法:
使用表格类

引用通告:

引用通告(trackback)是现在WEB2.0的产物,BLOG成为WEB2.0的关键包括TRACKBACK的功能,在BLOG发表一篇评论的时候,在尾部的引用栏输入对方文章的引用(TRACKBACK)地址,那么你发表完文章后,对方的BLOG就会自动在你所评论的文章的尾部添加了你的引用信息,所显示的信息因程序而不同,基本的要素包括了你评论的标题和你的评论的链接,其他人可以很清楚地看到你的引用,并很方便地点击就可以来看你的文章

用法:
使用引用通告类

排版类

排版类提供帮助您设置文本格式的功能。

用法:
使用排版类

单元测试类

单元测试是一种为你的应用程序中的每个函数编写测试的软件开发方法
CodeIgniter 的单元测试类非常简单,由一个测试方法和两个显示结果的方法组成。 它没打算成为一个完整的测试套件,只是提供一个简单的机制来测试你的代码是否 生成了正确的数据类型和结果。

使用
使用单元测试类库

URI 类

URI 类用于帮助你从 URI 字符串中获取信息,如果你使用 URI 路由, 你也可以从路由后的 URI 中获取信息。
注解
该类由系统自己加载,无需手工加载

用法
类参考

用户代理类

用户代理(User Agent)类提供了一些方法来帮助你识别正在访问你的站点的浏览器、 移动设备或机器人的信息。另外,你还可以通过它获取 referrer 信息,以及 支持的语言和字符集信息。

用法
使用用户代理类
用户代理的名称定义application/config/user_agents.php

XML-RPC 与 XML-RPC 服务器类

CodeIgniter 的 XML-RPC 类允许你向另一个服务器发送请求, 或者建立一个你自己的 XML-RPC 服务器来接受请求
XML-RPC是一种在两台计算机之间使用 XML 通过互联网进行通信的简单方法。 一台计算机 , 我们称之为客户端 , 发送一个 XML-RPC 请求给另外一台计算机, 我们称之为服务器,当服务器收到请求时,对其进行处理然后将结果返回给客户端

用法
使用 XML-RPC 类

Zip编码类

CodeIgniter的Zip编码类允许你创建Zip压缩文档,文档可以被下载到你的桌面或者保存到某个文件夹里。

用法
使用Zip编码类

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,820评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,648评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,324评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,714评论 1 297
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,724评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,328评论 1 310
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,897评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,804评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,345评论 1 318
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,431评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,561评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,238评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,928评论 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,417评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,528评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,983评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,573评论 2 359

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,702评论 18 139
  • 内联结是inner外联结分为左右 跟着程老哥学习下MySQL,看到联结表的时候还是很懵逼的,我们用案例看看,这几个...
    罗罗攀阅读 986评论 4 3
  • 秋风萧瑟卷落叶, 孤雁南飞话离别。 夜半冷雨愁犹在, 一曲离殇断心弦。
    姝瑾儿阅读 439评论 16 25
  • 学高为师,身正为范。这是社会对老师的要求。你说一句脏话,他们说你不为人师表,你一个知识不会,他们说你还是老师呢...
    风吹落花阅读 479评论 1 0