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
章节1 欢迎使用Codelgniter4 CodeIgniter是一套给PHP网站开发者使用的应用程序开发框架和工具包。它的目标 是让你能够更快速的开发,它提供了日常任务中所需的大量类库,以及简单的接口和 逻辑结构。通过减少代码量,Codelgniter让你更加专注于你的创造性工作。 Codelgniter将尽可能的保持其灵活性,以允许你以喜欢的方式工作,而不是被迫以其 它方式工作。框架可以轻松扩展或替换核心部件,使系统按你期望的方式工作。简而言 之,CodeIgniter是一个可扩展的框架,它试图提供你所需的工具,同时让你避免踩坑。 1.1 Codelgniter是为谁准备的? CodeIgniter就是你所需要的,如果… ·你想要一个小巧的框架; ·你需要出色的性能; ·你想要一个几乎零配置的框架 ·你想要一个不需使用命令行的框架; ·你想要一个不想被编码规则的条条框框限制住的框架; ·你对PEAR这种庞然大物不感兴趣; ·你不想被迫学习一种新的模板语言(当然如果你喜欢,你可以选择一个模板解析 器) ·你不喜欢复杂,追求简单; ·你需要清晰、完整的文档。 1
章节 1 欢迎使用 CodeIgniter4 CodeIgniter 是一套给 PHP 网站开发者使用的应用程序开发框架和工具包。它的目标 是让你能够更快速的开发,它提供了日常任务中所需的大量类库,以及简单的接口和 逻辑结构。通过减少代码量,CodeIgniter 让你更加专注于你的创造性工作。 CodeIgniter 将尽可能的保持其灵活性,以允许你以喜欢的方式工作,而不是被迫以其 它方式工作。框架可以轻松扩展或替换核心部件,使系统按你期望的方式工作。简而言 之,CodeIgniter 是一个可扩展的框架,它试图提供你所需的工具,同时让你避免踩坑。 1.1 CodeIgniter 是为谁准备的? CodeIgniter 就是你所需要的,如果… • 你想要一个小巧的框架; • 你需要出色的性能; • 你想要一个几乎零配置的框架; • 你想要一个不需使用命令行的框架; • 你想要一个不想被编码规则的条条框框限制住的框架; • 你对 PEAR 这种庞然大物不感兴趣; • 你不想被迫学习一种新的模板语言(当然如果你喜欢,你可以选择一个模板解析 器); • 你不喜欢复杂,追求简单; • 你需要清晰、完整的文档。 1
Codelgniter4中文手册,版本4.0.0 1.1.1服务器安装要求 需要7.2或更新版本的PHP同时需要安装*intl*扩展。 在服务器同时需要启用以下PHP扩展:php-json,php-mbstring,php-mysqlnd, php-xml 为了能够使用CURLRequest,你需要安装libcurl。 对于大多数wb应用程序来说,一个数据库是不可或缺的。以下是我们支持的数据库: ·MySQL(5.1+)通过MySQLi驱动使用 ·PostgreSQL通过Postgre驱动使用 ·SQLite3通过SQLite3驱动使用 CodeIgniter4并没有转换或重写所有的驱动,下列显示了几个很棒的数据库与它们对应 的驱动 ·MySQL(5.1+)通过pdo驱动 ·Oracle通过oci8和pdo驱动使用 ·PostgreSQL通过pdo driver ·MS SQL通过mssql,sqlsrv(2005版本及以上使用)和pdo驱动使用 ·SQLite通过sqlite(version2)和pdo驱动使用 ·CUBRID通过cubrid和pdo驱动使用 ·Interbase/Firebird通过ibase and pdo驱动使用 ·ODBC通过odbc和pdo驱动使用(你应该知道ODBC实际上只是一个抽象层) 1.1.2发展历程与贡献者 CodeIgniter原本是由EllisLab所开发的。本框架的开发目的是为了提升在现实使用过 程中的性能,同时实现了许多原创的类库,辅助函数和子系统(借鉴了ExpressionEngin© 的代码结构)。在过去的几年中,是由EllisLab,ExpressionEngine开发团队以及被称 为the Reactor Team的社区成员所开发并维护的。 而在20l4年,CodeIgniter转由British Columbia Institute of Technology进行维护,并 正式宣布其将作为一个社区维护的项目。 本框架的前沿开发过程中,CodeIgniter委员会中的优秀贡献者们体现了先锋的精神 (译者注:实际大部分的功能与测试都是由几位开源贡献者鼎力实现的)。 1.1.3PSR规范 PHP-FIG创建于20O9年,旨在帮助各个框架之间更自由的协作标准,遵循统一的编 码和风格规范。CodeIgniter虽然并非FIG的成员之一,但我们的宗旨是一致的。这份 文档主要是用来列出现有我们所遵循已被提案通过和一些草案的情况。 章节1.欢迎使用Codelgniter4
CodeIgniter4 中文手册, 版本 4.0.0 1.1.1 服务器安装要求 需要 7.2 或更新版本的 PHP 同时需要安装 *intl* 扩展 。 在服务器同时需要启用以下 PHP 扩展: php-json, php-mbstring, php-mysqlnd, php-xml 为了能够使用CURLRequest ,你需要安装 libcurl 。 对于大多数 web 应用程序来说,一个数据库是不可或缺的。以下是我们支持的数据库: • MySQL (5.1+) 通过 MySQLi 驱动使用 • PostgreSQL 通过 Postgre 驱动使用 • SQLite3 通过 SQLite3 驱动使用 CodeIgniter4 并没有转换或重写所有的驱动,下列显示了几个很棒的数据库与它们对应 的驱动 • MySQL (5.1+) 通过 pdo 驱动 • Oracle 通过 oci8 和 pdo 驱动使用 • PostgreSQL 通过 pdo driver • MS SQL 通过 mssql, sqlsrv (2005 版本及以上使用) 和 pdo 驱动使用 • SQLite 通过 sqlite (version 2) 和 pdo 驱动使用 • CUBRID 通过 cubrid 和 pdo 驱动使用 • Interbase/Firebird 通过 ibase and pdo 驱动使用 • ODBC 通过 odbc 和 pdo 驱动使用(你应该知道 ODBC 实际上只是一个抽象层) 1.1.2 发展历程与贡献者 CodeIgniter 原本是由 EllisLab 所开发的。本框架的开发目的是为了提升在现实使用过 程中的性能,同时实现了许多原创的类库,辅助函数和子系统(借鉴了 ExpressionEngine 的代码结构)。在过去的几年中,是由 EllisLab,ExpressionEngine 开发团队以及被称 为 the Reactor Team 的社区成员所开发并维护的。 而在 2014 年,CodeIgniter 转由 British Columbia Institute of Technology 进行维护,并 正式宣布其将作为一个社区维护的项目。 本框架的前沿开发过程中,CodeIgniter 委员会中的优秀贡献者们体现了先锋的精神 (译者注:实际大部分的功能与测试都是由几位开源贡献者鼎力实现的)。 1.1.3 PSR 规范 PHP-FIG 创建于 2009 年,旨在帮助各个框架之间更自由的协作标准,遵循统一的编 码和风格规范。CodeIgniter 虽然并非 FIG 的成员之一,但我们的宗旨是一致的。这份 文档主要是用来列出现有我们所遵循已被提案通过和一些草案的情况。 2 章节 1. 欢迎使用 CodeIgniter4
Codelgniter4中文手册,版本4.0.0 PSR-1:基础编码规范 这份规范覆盖了基本类,方法和文件的命名标准。我们的开发规范符合PSR-1,并且 在它的基础上添加了自己的标准。 PSR-2:编码风格规范 这份PSR的争议性是比较大的,在它第一次出现的时候。CodeIgniter在其中遇到了许 多建议,但不会完全符合这些规范。 PSR-3:日志接口规范 CodeIgniter的Logger实现了该PSR提供的所有接口。 PSR-4:自动加载规范 这份P$R提供了组织文件和命名空间以允许自动加载类的标准方法的方法。我们的自 动加载类符合PSR-4规范。 PSR-6:缓存接口规范 CodeIgniter不会尝试符合这份PSR,因为我们相信它超越了它的需求。我们会考虑新 提出的SimpleCache接口。 PSR-7:HTTP消息接口规范 这份PSR标准化了表示HTTP交互的方式。虽然许多概念成为我们的HTTP层的一 部分,但CodeIgniter并不力求与此规范兼容。 如果你发现任何我们声称实现PSR但未能正确执行的地方,请通知我们,我们会将其 修正,或提交需要更改的拉动请求。 1.1.Codelgniter是为谁准备的? 3
CodeIgniter4 中文手册, 版本 4.0.0 PSR-1: 基础编码规范 这份规范覆盖了基本类,方法和文件的命名标准。我们的 开发规范符合 PSR-1,并且 在它的基础上添加了自己的标准。 PSR-2: 编码风格规范 这份 PSR 的争议性是比较大的,在它第一次出现的时候。CodeIgniter 在其中遇到了许 多建议,但不会完全符合这些规范。 PSR-3: 日志接口规范 CodeIgniter 的Logger 实现了该 PSR 提供的所有接口。 PSR-4: 自动加载规范 这份 PSR 提供了组织文件和命名空间以允许自动加载类的标准方法的方法。我们的自 动加载类 符合 PSR-4 规范。 PSR-6: 缓存接口规范 CodeIgniter 不会尝试符合这份 PSR ,因为我们相信它超越了它的需求。我们会考虑新 提出的 SimpleCache 接口 。 PSR-7: HTTP 消息接口规范 这份 PSR 标准化了表示 HTTP 交互的方式。虽然许多概念成为我们的 HTTP 层的一 部分,但 CodeIgniter 并不力求与此规范兼容。 — 如果你发现任何我们声称实现 PSR 但未能正确执行的地方,请通知我们,我们会将其 修正,或提交需要更改的拉动请求。 1.1. CodeIgniter 是为谁准备的? 3
章节2 开始 2.1安装 CodeIgniter4可以通过多种不同的方式安装:手动,使用Composer或使用Git。你喜 欢哪个? ·如果你希望像CodeIgniter3那样简单的“下载并使用”,那么你应该选择手动安 装。 ·如果你打算在项目中添加其他软件包,我们建议你使用Composer方式安装。 ·如果你想为框架添砖加瓦,那么你应该选择Gt方式安装。 2.1.1手动安装 CodeIgniter4框架目录保存了所有已发布的框架版本。这是为那些不想用Composer 的开发者准备的。 在app文件夹里开发你的项目,而public文件夹就将成为你的对外根目录。与此同 时,请勿更改system文件夹下面的任何内容! Note:这是和CodeIgniter3描述的安装方式最相近的。 安装 下载最新版本,并将其解压到你的项目根目录。 5
章节 2 开始 2.1 安装 CodeIgniter4 可以通过多种不同的方式安装:手动,使用 Composer 或使用 Git。你喜 欢哪个? • 如果你希望像 CodeIgniter3 那样简单的“下载并使用”,那么你应该选择手动安 装。 • 如果你打算在项目中添加其他软件包,我们建议你使用 Composer 方式安装。 • 如果你想为框架添砖加瓦,那么你应该选择 Git 方式安装。 2.1.1 手动安装 CodeIgniter 4 框架 目录保存了所有已发布的框架版本。这是为那些不想用 Composer 的开发者准备的。 在 app 文件夹里开发你的项目,而 public 文件夹就将成为你的对外根目录。与此同 时,请勿更改 system 文件夹下面的任何内容! Note: 这是和 CodeIgniter 3 描述的安装方式最相近的。 安装 下载 最新版本, 并将其解压到你的项目根目录。 5
Codelgniter4中文手册,版本4.0.0 设置 无 升级 下载一份最新的框架,并根据发布通知或更新日志里的升级教程来将最新版本的内容 合并进你的项目。 通常来说,替换掉system目录,并且检查app/Config文件夹下受影响的变更内容即 可。 优点 下载就可以运行 缺点 当更新时,你要自己合并冲突 结构 在你的项目设置完成后,新建以下文件夹:app,public,system,writable 安装翻译 如果你想充分利用系统信息的翻译,可以类似地把这些翻译加入到项目中。 下载最新版本的翻译解压下载的zip文件并将Language文件夹的内容复制到你的 PR.OJECT_RO0T/app/Languages文件夹下。 在进行任何翻译的升级时都需要重复以上步骤。 2.1.2通过Composer安装 ·启动应用 将CodeIgniter4添加到现存项目中 安装翻译 6 章节2.开始
CodeIgniter4 中文手册, 版本 4.0.0 设置 无 升级 下载一份最新的框架,并根据发布通知或更新日志里的升级教程来将最新版本的内容 合并进你的项目。 通常来说,替换掉 system 目录,并且检查 app/Config 文件夹下受影响的变更内容即 可。 优点 下载就可以运行 缺点 当更新时,你要自己合并冲突 结构 在你的项目设置完成后,新建以下文件夹: app, public, system, writable 安装翻译 如果你想充分利用系统信息的翻译,可以类似地把这些翻译加入到项目中。 下载 最新版本的翻译 解压下载的 zip 文件并将 Language 文件夹的内容复制到你的 PROJECT_ROOT/app/Languages 文件夹下。 在进行任何翻译的升级时都需要重复以上步骤。 2.1.2 通过 Composer 安装 • 启动应用 • 将 CodeIgniter4 添加到现存项目中 • 安装翻译 6 章节 2. 开始