Codelgniter4中文手册 版本4.0.0 Codelgniter基金会 Codelgniter中国开发者社区 2020年11月21日
CodeIgniter4 中文手册 版本 4.0.0 CodeIgniter 基金会 CodeIgniter 中国开发者社区 2020 年 11 月 21 日
目录 1欢迎使用CodeIgniter.4 1 1.1 CodeIgniter是为谁准备的? 1 1.1.1 服务器安装要求.. 2 1.1.2 发展历程与贡献者 2 1.1.3 PSR规范 2 2开始 5 2.1 安装.。.。.。。。 5 2.1.1 手动安装 5 2.1.2 通过Composer安装 6 2.1.3 运行你的应用程序 10 2.1.4 从老版本升级····· 13 2.1.5 故障排除····.··. 16 2.1.6 Codelgniter仓库 16 3构建你的第一个应用 19 3.1构建你的第一个应用.....·. 19 3.1.1 概述 19 3.1.2 开始并运行 31 3.1.3 欢迎页.。·。···…·· 31 3.1.4 调试.,.... 。 32 4概览和常规主题 35 4.1 CodeIgniter4概览 35 4.1.1应用结构 35 4.1.2 模型,视图和控制器 37 4.1.3 自动加载文件····· 39 4.1.4 服务 。 40 4.1.5 处理HTTP请求 44 4.1.6 安全指南 46 4.2 常规主题············ 51 4.2.1 配置文件 51 4.2.2 Codelgniter URL.. 57
目录 1 欢迎使用 CodeIgniter4 1 1.1 CodeIgniter 是为谁准备的? . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.1 服务器安装要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.2 发展历程与贡献者 . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.3 PSR 规范 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 开始 5 2.1 安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.1 手动安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.2 通过 Composer 安装 . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.3 运行你的应用程序 . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.1.4 从老版本升级 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.1.5 故障排除 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.1.6 CodeIgniter 仓库 . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3 构建你的第一个应用 19 3.1 构建你的第一个应用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.1.1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.1.2 开始并运行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.1.3 欢迎页 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.1.4 调试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4 概览和常规主题 35 4.1 CodeIgniter4 概览 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.1.1 应用结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.1.2 模型,视图和控制器 . . . . . . . . . . . . . . . . . . . . . . . . 37 4.1.3 自动加载文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.1.4 服务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.1.5 处理 HTTP 请求 . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.1.6 安全指南 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2 常规主题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.2.1 配置文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.2.2 CodeIgniter URL . . . . . . . . . . . . . . . . . . . . . . . . . . 57 i
4.2.3 辅助函数 59 4.2.4 公共函数和全局常量 62 4.2.5 记录日志信息 71 4.2.6 错误处理 4.2.7 网页缓存 78 4.2.8 AJAX请求 79 4.2.9 代码模块 80 4.2.10 管理多个应用 85 4.2.11 处理多环境 86 5请求处理 89 5.1 控制器和路由 89 5.1.1 控制器 89 5.1.2 URI路由 97 5.1.3 控制器过滤器 108 5.1.4 HTTP消息· 112 5.1.5 Request类.··· 118 5.1.6 ncomingRequest类 120 5.1.7 内容协商 130 5.1.8 HTTP类型伪装 132 5.1.9 处理RESTful请求资源 133 5.2 构建响应 138 5.2.1 视图 138 5.2.2 子视图 144 5.2.3 视图渲染器 145 5.2.4 视图布局 149 5.2.5 View Parser 151 5.2.6 HTML Table Class 169 5.2.7 HTTP响应 177 5.2.8 API响应特性 185 5.2.9 本地化 192 5.2.10 在视图文件中使用PHP替代语法.· 198 6数据库 201 6.1 数据库参考 201 6.1.1 数据库快速入门:示例代码 201 6.1.2 数据库配置 203 6.1.3 连接你的数据库 209 6.1.4 执行查询· 211 6.1.5 生成查询结果 218 6.1.6 查询语句辅助函数 227 6.1.7 查询构造器类 229 6.1.8 263 6.1.9 数据库元数据 266 6.1.10 自定义函数调用 269 6.1.11 数据库事件 270 6.1.12 实用工具 270 6.2 数据建模····· 271 公
4.2.3 辅助函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 4.2.4 公共函数和全局常量 . . . . . . . . . . . . . . . . . . . . . . . . 62 4.2.5 记录日志信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 4.2.6 错误处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 4.2.7 网页缓存 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 4.2.8 AJAX 请求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 4.2.9 代码模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 4.2.10 管理多个应用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 4.2.11 处理多环境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 5 请求处理 89 5.1 控制器和路由 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 5.1.1 控制器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 5.1.2 URI 路由 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 5.1.3 控制器过滤器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 5.1.4 HTTP 消息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 5.1.5 Request 类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 5.1.6 IncomingRequest 类 . . . . . . . . . . . . . . . . . . . . . . . . 120 5.1.7 内容协商 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 5.1.8 HTTP 类型伪装 . . . . . . . . . . . . . . . . . . . . . . . . . . 132 5.1.9 处理 RESTful 请求资源 . . . . . . . . . . . . . . . . . . . . . . 133 5.2 构建响应 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 5.2.1 视图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 5.2.2 子视图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 5.2.3 视图渲染器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 5.2.4 视图布局 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 5.2.5 View Parser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 5.2.6 HTML Table Class . . . . . . . . . . . . . . . . . . . . . . . . . 169 5.2.7 HTTP 响应 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 5.2.8 API 响应特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 5.2.9 本地化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 5.2.10 在视图文件中使用 PHP 替代语法 . . . . . . . . . . . . . . . . . 198 6 数据库 201 6.1 数据库参考 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 6.1.1 数据库快速入门: 示例代码 . . . . . . . . . . . . . . . . . . . . 201 6.1.2 数据库配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 6.1.3 连接你的数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 6.1.4 执行查询 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 6.1.5 生成查询结果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 6.1.6 查询语句辅助函数 . . . . . . . . . . . . . . . . . . . . . . . . . 227 6.1.7 查询构造器类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 6.1.8 事务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 6.1.9 数据库元数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 6.1.10 自定义函数调用 . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 6.1.11 数据库事件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 6.1.12 实用工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 6.2 数据建模 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 ii
6.2.1 Using Codelgniter's Model...················ 271 6.2.2 Vorking With Entities..........·.········· 289 6.3 管理数据库····· 298 6.3.1 数据库工厂类 298 6.3.2 数据库迁移 307 6.3.3 数据填充 314 7类库和辅助函数 317 7.1 类库参考······ 317 7.1.1 缓存驱动器 317 7.1.2 CURLRequest类 322 7.1.3 Email Class 。。 331 7.1.4 加密服务 341 7.1.5 使用文件类 346 7.1.6 Honeypot Class 348 7.1.7 图像处理类 349 7.1.8 分页类···· 356 7.1.9 安全类.. 361 7.1.10 Session类 363 7.1.11 限流类 377 7.1.12 日期与时间类 380 7.1.13 Typography类 391 7.1.14 使用文件上传类 393 7.1.15 使用URI类.· 398 7.1.16 User Agent Class 404 7.1.17 验证类 408 7.2 辅助函数 426 7.2.1 Array Helper 426 7.2.2 Cookie辅助函数 428 7.2.3 Date Helper 429 7.2.4 文件系统辅助函数 431 7.2.5 表单辅助函数 436 7.2.6 HTML辅助函数 451 7.2.7 偏转辅助函数 464 7.2.8 数字辅助函数 。 467 7.2.9 安全辅助函数 469 7.2.10文本辅助函数 471 7.2.11 URL辅助函数 480 7.2.12 XML辅助函数 487 8高级主题 489 8.1测试.............. 489 8.1.1 Testing..·····: ·。 489 8.1.2 Testing Your Database 。 495 8.1.3 Testing Controllers..···...········· 。 499 8.1.4 HTTP Feature Testing 504 8.1.5 基准测试类 511 8.1.6 调试你的应用 514 讲
6.2.1 Using CodeIgniter’s Model . . . . . . . . . . . . . . . . . . . . 271 6.2.2 Working With Entities . . . . . . . . . . . . . . . . . . . . . . . 289 6.3 管理数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 6.3.1 数据库工厂类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 6.3.2 数据库迁移 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 6.3.3 数据填充 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 7 类库和辅助函数 317 7.1 类库参考 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 7.1.1 缓存驱动器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 7.1.2 CURLRequest 类 . . . . . . . . . . . . . . . . . . . . . . . . . . 322 7.1.3 Email Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 7.1.4 加密服务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 7.1.5 使用文件类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346 7.1.6 Honeypot Class . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 7.1.7 图像处理类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 7.1.8 分页类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 7.1.9 安全类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 7.1.10 Session 类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 7.1.11 限流类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 7.1.12 日期与时间类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 7.1.13 Typography 类 . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 7.1.14 使用文件上传类 . . . . . . . . . . . . . . . . . . . . . . . . . . . 393 7.1.15 使用 URI 类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398 7.1.16 User Agent Class . . . . . . . . . . . . . . . . . . . . . . . . . . 404 7.1.17 验证类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 7.2 辅助函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426 7.2.1 Array Helper . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426 7.2.2 Cookie 辅助函数 . . . . . . . . . . . . . . . . . . . . . . . . . . 428 7.2.3 Date Helper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429 7.2.4 文件系统辅助函数 . . . . . . . . . . . . . . . . . . . . . . . . . 431 7.2.5 表单辅助函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 7.2.6 HTML 辅助函数 . . . . . . . . . . . . . . . . . . . . . . . . . . 451 7.2.7 偏转辅助函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464 7.2.8 数字辅助函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 7.2.9 安全辅助函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 7.2.10 文本辅助函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 7.2.11 URL 辅助函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 7.2.12 XML 辅助函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . 487 8 高级主题 489 8.1 测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489 8.1.1 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489 8.1.2 Testing Your Database . . . . . . . . . . . . . . . . . . . . . . . 495 8.1.3 Testing Controllers . . . . . . . . . . . . . . . . . . . . . . . . . 499 8.1.4 HTTP Feature Testing . . . . . . . . . . . . . . . . . . . . . . . 504 8.1.5 基准测试类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 8.1.6 调试你的应用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 iii
8.2 命令行用法··················· 519 8.2.1 通过CLI方式运行 519 8.2.2 自定义CLI命令 521 8.2.3 CLI Library 525 8.2.4 CLIRequest Class 530 8.3扩展CodeIgniter.... 531 8.3.1 创建核心系统类. 。。 531 8.3.2 替换通用函数..· 534 8.3.3 534 8.3.4 扩展Controller 536 8.3.5 538 8.3.6 贡献给Codelgniter 538 8.4 The MIT License(MT)...················ 539 8.5 Change Logs·············· 539 8.5.1 Version4.0.....··· 539 索引 621 iv
8.2 命令行用法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 8.2.1 通过 CLI 方式运行 . . . . . . . . . . . . . . . . . . . . . . . . . 519 8.2.2 自定义 CLI 命令 . . . . . . . . . . . . . . . . . . . . . . . . . . 521 8.2.3 CLI Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 8.2.4 CLIRequest Class . . . . . . . . . . . . . . . . . . . . . . . . . . 530 8.3 扩展 CodeIgniter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531 8.3.1 创建核心系统类 . . . . . . . . . . . . . . . . . . . . . . . . . . . 531 8.3.2 替换通用函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 8.3.3 事件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 8.3.4 扩展 Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . 536 8.3.5 鉴权 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 8.3.6 贡献给 CodeIgniter . . . . . . . . . . . . . . . . . . . . . . . . . 538 8.4 The MIT License (MIT) . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 8.5 Change Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 8.5.1 Version 4.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 索引 621 iv