CodeIgniter 应用程序架构
CodeIgniter 应用程序的架构如下所示:
如图所示,每当一个请求来到CodeIgniter,它将首先进入index.php页面;
在第二步中,路由(Routing)将决定是否将该请求传递给第3步进行缓存,或将该请求传递给第4步进行安全检查;
如果被请求的页面已经在缓存(Caching)中,那么路由(Routing)将把请求传递给第3步,响应将返回给用户;
如果请求的页面不存在于缓存(Caching)中,那么路由(Routing)将把请求的页面传递给第4步进行安全(Security)检查;
在将请求传递给应用控制器(Application Controller)之前,要检查所提交数据的安全(Security)。在安全检查之后,应用控制器加载必要的模型(Models)、库(Libraries)、助手(Helpers)、插件(Plugins)和脚本(Scripts),并将其传递给视图(View);
视图(View)将用可用数据渲染页面,并将其传递给缓存(Caching)。由于请求的页面之前没有被缓存,所以这次它将被缓存在缓存(Caching)中,以便为未来的请求快速处理这个页面。
目录结构
下面给出的图像显示了 CodeIgniter 的目录结构。
CodeIgniter 目录结构分为 3 个文件夹:
application
system
user_guide
Application
顾名思义,Application 文件夹包含你正在构建的应用程序的所有代码,这是你将开发项目的文件夹。
Application 文件夹包含其他几个文件夹,解释如下:
cache: 这个文件夹包含了你应用的所有缓存页面。这些缓存页面将提高访问页面的整体速度。
config:这个文件夹包含各种文件来配置应用程序。在config.php文件的帮助下,用户可以配置应用程序。使用database.php文件,用户可以配置应用程序的数据库。
controllers: 这个文件夹保存了你的应用程序的控制器。它是你的应用程序的基本部分。
core: 该文件夹将包含你的应用程序的基类。
helpers: 在这个文件夹中,你可以放置你的应用程序的助手类。
hooks: 此文件夹中的文件提供了一种在不破解核心文件的情况下访问和修改框架内部工作的方法。
language: 该文件夹包含语言相关文件。
libraries: 该文件夹包含为你的应用程序开发的库文件。
logs: 该文件夹包含与系统日志相关的文件。
models: 数据库登录会放在这个文件夹中。
third_party: 在这个文件夹中,你可以放置任何插件,这些插件将用于你的应用程序。
views: 应用程序的 HTML 文件将放置在此文件夹中。
System
该文件夹包含 CodeIgniter 核心代码、库、帮助程序和其他文件,有助于简化编码。这些库和帮助程序在 Web 应用程序开发中加载和使用。
这个文件夹包含所有的 CodeIgniter 结果代码,组织到不同的文件夹中:
core: 该文件夹包含 CodeIgniter 的核心类。不要在这里修改任何东西。你的所有工作都将在应用程序文件夹中进行。即使你的意图是扩展 CodeIgniter 核心,你也必须使用钩子来实现,而钩子位于应用程序文件夹中。
database: 数据库文件夹包含核心数据库驱动程序和其他数据库实用程序。
fonts: fonts 文件夹包含字体相关信息和实用程序。
helpers: helpers 文件夹包含标准的 CodeIgniter 帮助器(例如日期、cookie 和 URL 帮助器)。
language: 语言文件夹包含语言文件。你可以暂时忽略它。
libraries: libraries 文件夹包含标准的 CodeIgniter 库(帮助你处理电子邮件、日历、文件上传等)。你可以创建自己的库或扩展(甚至替换)标准库,但这些将保存在application/libraries目录以将它们与保存在此特定文件夹中的标准 CodeIgniter 库分开。
user_guide
这是你的 CodeIgniter 用户指南,它基本上是 CodeIgniter 网站上用户指南的离线版本,使用它可以学习各种库、助手和类的功能。在 CodeIgniter 中构建你的第一个 Web 应用程序之前,建议先阅读本用户指南。
除了这三个文件夹之外,还有一个重要的文件叫做“index.php”。在这个文件中,我们可以设置应用程序环境和错误级别,我们可以定义系统和应用程序文件夹名称。如果你对将要执行的操作没有足够的了解,建议不要编辑这些设置。