应用程序结构
为了充分利用 CodeIgniter,您需要了解应用程序的默认结构以及可以更改哪些内容以满足您的应用程序需求。
默认目录
新安装有五个目录:app/
、public/
、writable/
、tests/
和 vendor/
或 system/
。 每个目录都扮演着非常重要的角色。
app
app
目录是所有应用程序代码所在的位置。 它带有一个默认目录结构,适用于许多应用程序。 以下文件夹构成了基本内容
app/
Config/ Stores the configuration files
Controllers/ Controllers determine the program flow
Database/ Stores the database migrations and seeds files
Filters/ Stores filter classes that can run before and after controller
Helpers/ Helpers store collections of standalone functions
Language/ Multiple language support reads the language strings from here
Libraries/ Useful classes that don't fit in another category
Models/ Models work with the database to represent the business entities
ThirdParty/ ThirdParty libraries that can be used in application
Views/ Views make up the HTML that is displayed to the client
由于 app
目录已经命名空间化,您可以随意修改此目录的结构以满足您的应用程序需求。例如,您可能决定开始使用 Repository 模式和 Entity 模型来处理您的数据。在这种情况下,您可以将 Models
目录重命名为 Repositories
,并添加一个新的 Entities
目录。
注意
但是,如果您重命名 Controllers
目录,您将无法使用自动路由到控制器的机制,并且需要在路由文件中定义所有路由。
此目录中的所有文件都位于 App
命名空间下,但您可以在 app/Config/Constants.php 中自由更改它。
system
注意
如果您使用 Composer 安装 CodeIgniter,则 system
位于 vendor/codeigniter4/framework/system
中。
此目录存储构成框架本身的文件。虽然您在使用应用程序目录方面有很大的灵活性,但系统目录中的文件永远不应该被修改。相反,您应该扩展类或创建新类来提供所需的功能。
此目录中的所有文件都位于 CodeIgniter
命名空间下。
public
public 文件夹包含您的 Web 应用程序的浏览器可访问部分,防止直接访问您的源代码。它包含主 .htaccess 文件、index.php 以及您添加的任何应用程序资产,例如 CSS、javascript 或图像。
此文件夹旨在成为您网站的“Web 根目录”,并且您的 Web 服务器将被配置为指向它。
writable
此目录包含应用程序生命周期中可能需要写入的任何目录。 这包括用于存储缓存文件、日志和用户可能发送的任何上传文件的目录。 您应该在此处添加应用程序需要写入的任何其他目录。 这使您可以将其他主要目录保持为不可写,作为额外的安全措施。
tests
此目录用于存放您的测试文件。 _support
目录包含各种模拟类和其他实用程序,您可以在编写测试时使用它们。 此目录不需要传输到您的生产服务器。
修改目录位置
如果您已重新定位任何主目录,则可以更改 **app/Config/Paths.php** 中的配置设置。
请阅读 管理您的应用程序.