CodeIgniter文件夹、文件和目录结构
⚡ 智能摘要
CodeIgniter 将 PHP 项目组织成可预测的文件夹,用于存放应用程序逻辑、框架系统文件、Composer 供应商包和单个入口脚本,以便初学者可以快速找到代码,中级开发人员可以扩展清晰的 MVC 结构。

了解文件结构 Code在构建任何实际应用程序之前,Igniter 是必不可少的。可预测的布局有助于您快速找到控制器、模型和视图,调试路由问题,并更快地让新团队成员上手。本教程涵盖了经典的 Igniter 框架。 CodeIgniter 3 的架构目前仍被广泛部署,本文还将阐明您将遇到的关键差异。 CodeIgniter 4.x 引入了 app/、public/ 和 writeable/ 作为单独的顶级文件夹。
是什么 CodeIgniter 文件和目录结构?
此 CodeIgniter 文件结构是框架下载或安装后默认的文件夹和 PHP 文件排列方式。它将应用程序逻辑与框架核心分离,保持 Composer 依赖项的隔离,并通过 index.php 暴露单一入口点。下图展示了文件结构。 Code点火器:
以下是一个简化的全新目录树。 CodeIgniter 3 安装:
// CodeIgniter 3 root layout project-root/ ├── application/ ├── system/ ├── user_guide/ ├── vendor/ ├── composer.json ├── composer.lock └── index.php
顶级文件夹详解
现在让我们来看一下上面的文件。 Code点火器结构:
- 应用 这是存放应用程序逻辑的目录。所有应用程序代码都将位于此目录中。
- 系统 – 此文件夹包含框架核心文件。不建议在此目录中进行更改或将您自己的应用程序代码放入此目录中。
- 用户指南 – 此目录包含以下用户手册: Code点火器.
- 供应商 此目录包含 Composer 包的源代码。与此目录相关的其他文件包括 composer.json 和 composer.lock。
- 的index.php – 这是应用程序的入口点。
CodeIgniter应用程序子目录
现在让我们更详细地看一下这些目录。如前所述,应用程序目录包含您的项目代码。在本节中,我们将查看其内部子目录。 CodeIgniter目录结构:
- 缓存 – 存储由输出和数据库缓存库生成的缓存文件。
- 配置 – 保存配置文件,例如 database.php、routes.php 和 autoload.php。
- 控制器 所有应用程序控制器都在此处定义和映射 URL 将片段转换为操作。
- 核心 – 包含扩展系统文件的自定义核心类。例如,如果您创建了一个其他控制器需要扩展的基础控制器,则应将其放在此目录中。
- 佣工 – 本目录 CodeIgniter 文件夹结构用于存放用户自定义的辅助函数。
- 挂钩 – 用于 CI 文件夹结构中的自定义钩子,这些钩子会在框架执行周期内触发。
- language – 用于存储使用多种语言的应用程序的语言文件。
- 库 用于存储自定义创建的库。
- 日志 应用程序日志文件保存在此目录中。
- 模型 所有应用程序模型都应该在此目录中定义。
- 第三者 – 这是用于您或其他开发者创建的自定义软件包。
- 意见 应用程序视图将放入此目录。
以下是应用程序子目录树的示例:
// application/ subdirectories application/ ├── cache/ ├── config/ ├── controllers/ ├── core/ ├── helpers/ ├── hooks/ ├── language/ ├── libraries/ ├── logs/ ├── models/ ├── third_party/ └── views/
Code点火系统子目录
现在我们来看一下 CI 文件结构中的系统子目录。请记住,框架源代码就位于这里,因此请勿对该目录中的文件进行任何更改。
- 核心 – 这就像 CodeIgniter框架框架的所有核心文件都位于此处。如果您想扩展核心文件的功能,则需要在应用程序目录中创建一个自定义核心文件。之后,您可以根据需要覆盖现有行为或添加新的行为。切勿直接在此处进行任何更改。
- 数据库 数据库驱动程序、缓存和其他数据库操作所需的文件都在这里提供。
- 字体 – 正如其名称所示,该目录包含字体和与字体相关的信息。
- 佣工 – 此目录位于 CodeIgniter 结构文件夹包含开箱即用的辅助函数。
- language – 包含框架使用的语言文件。
- 库 – 包含各种库的源文件 Code开箱即用的点火器。
系统文件夹布局如下所示:
// system/ subdirectories system/ ├── core/ ├── database/ ├── fonts/ ├── helpers/ ├── language/ └── libraries/
CodeIgniter 用户指南目录
本目录可作为参考指南,帮助您了解…… CodeIgniter API。在将应用程序部署到生产环境时,不应上传此目录,因为它会增加文件大小并暴露一些在生产服务器上不需要的文档。
CodeIgniter供应商目录
此目录包含您通过 Composer 安装的软件包的源文件。此目录中的文件应保持原样,不得进行任何更改。与 user_guide 目录不同,如果您在应用程序中使用 Composer 软件包,则需要上传此目录。
index.php 文件
位于 CodeIgniter 文件结构包含引导代码,用于定义环境、路径和错误报告,之后将控制权交给框架。该文件位于根目录,并充当每个传入 HTTP 请求的前端控制器。
创新中心 Code点火器 4 改变了结构
CodeIgniter 4.x 重新组织了布局,以提高安全性并支持 PSR-4 自动加载。现在,您不再看到单个应用程序文件夹,而是看到三个顶级文件夹,它们更严格地划分了不同的功能:
- 应用/ – 相当于旧版 application/ 文件夹,其中包含 Controllers、Models、Views、Config、Filters 和 Libraries。
- 上市/ – 唯一暴露在网络上的文件夹,其中包含 index.php 以及您的 CSS、JS 和图像资源。
- 可写/ – 存储框架在运行时需要写入的缓存、日志、会话和上传内容。
- 系统/ – 仍然包含框架核心,命名空间位于 Code点火器。
- 供应商/ – composer 包,其作用与 CI 3 相同。
// CodeIgniter 4 root layout project-root/ ├── app/ ├── public/ ├── writable/ ├── system/ ├── vendor/ ├── tests/ ├── composer.json ├── env └── spark
如果你今天要启动一个新项目, Code推荐使用 Igniter 4 版本。如果您维护的是较旧的代码库,则上述 CI 3 结构将与您在磁盘上看到的结构一致。
与……合作 Code点火器结构日常
一旦你了解了每个文件夹的位置,常见任务就会变得非常简单。在 application/controllers/(或 CI 4 中的 app/Controllers/)下创建一个新的控制器,将其与 config/routes.php 中的路由匹配,在 models/ 下构建模型,并在 views/ 下渲染视图文件的输出。将配置放在 config/ 下,将可重用的代码放在 helpers/ 或 libraries/ 下,让 Composer 管理 vendor/ 下的所有内容。坚持这种做法,即使项目不断增长,也能保持易于管理。
