CodeIgniter4应用程序结构
思韵闪耀
2023-10-16
0

应用程序结构

为了充分利用 CodeIgniter,你需要了解默认情况下应用程序的结构,以及可以更改什么来满足应用程序的需要。

默认目录

app

system

public

writable

tests

修改目录位置


默认目录

一个新安装有五个目录:app/、public/、writable/、tests/ 和 vendor/ 或 system/。 每个目录都有非常具体的作用。


app

app 目录是所有应用程序代码的存放位置。它具有默认的目录结构,适用于许多应用程序。以下文件夹组成基本内容:

app/

    Config/         存储配置文件

    Controllers/    控制器确定程序流程

    Database/       存储数据库迁移和种子文件

    Filters/        存储可以在控制器之前和之后运行的过滤器类

    Helpers/        辅助函数存储独立函数的集合

    Language/       支持多语言会从这里读取语言字符串

    Libraries/      不适合其他类别的有用类

    Models/         模型与数据库一起工作来表示业务实体

    ThirdParty/     应用程序中可以使用的第三方库

    Views/          视图组成向客户端显示的 HTML

由于 app 目录已经有了命名空间,你应该随意修改此目录的结构以适应应用程序的需要。例如,你可能决定开始使用存储库模式和实体模型来处理数据。在这种情况下,你可以将 Models 目录重命名为 Repositories,并添加一个新的 Entities 目录。


备注

但是,如果你重命名了 Controllers 目录,则无法使用自动将请求路由到控制器的方法,并且需要在 routes 文件中定义所有路由。

此目录下的所有文件都位于 App 命名空间下,尽管你可以在 app/Config/Constants.php 中自由更改命名空间。


system

备注

如果使用 Composer 安装 CodeIgniter, system 位于 vendor/codeigniter4/framework/system。

此目录存储构成框架本身的文件。虽然你在如何使用应用程序目录方面有很大的灵活性,但是不应修改 system 目录中的文件。相反,你应该扩展类或创建新类以提供所需的功能。

此目录下的所有文件位于 CodeIgniter 命名空间下。


public

public 文件夹包含 web 应用程序的面向浏览器的部分,防止直接访问源代码。 它包含主要的 .htaccess 文件、index.php 以及你添加的任何应用程序资源,如 CSS、JavaScript 或图片。

此文件夹旨在成为站点的“网页根目录”,你的 web 服务器会配置为指向它。


writable

此目录包含在应用程序生命周期中可能需要写入的任何目录。这包括用于缓存文件、日志和用户上传的任何目录。你应该在这里添加应用程序需要写入的任何其他目录。这使你可以保持其他主目录不可写,作为额外的安全措施。


tests

此目录设置为保存测试文件。_support 目录包含可在编写测试时使用的各种模拟类和其他实用程序。此目录不需要传输到生产服务器。


修改目录位置

如果你已重新定位任何主目录,可以在 app/Config/Paths.php 内更改配置设置。


【版权声明】
本站部分内容来源于互联网,本站不拥有所有权,不承担相关法律责任。如果发现本站有侵权的内容,欢迎发送邮件至masing@13sy.com 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

相关内容

热门资讯

遇到is not within... 报错信息:is not within the allowed path(s): 总结:发现不是目录下...
open_basedir re... Warning: file_exists(): open_basedir restriction i...
file_get_conten... file_get_contents 不能使用解决方法(原因是没开启) 提示:Warning: fil...
session_start()... 今天更新了一下自己的cms,然后后台就提示登陆不了,报错如下:Failed to initializ...
解决 child pid ex... 最近在VPS上测试一个php项目,用的centos6 64位的系统装完进入管理界面 始终出错 fir...
完美解决PHP中文乱码 用php时中文乱码就是一个很棘手的问题,最近要开始写项目了,觉得解决中文乱码是和有必要的 一、首先是...
大型php网站性能和并发访问优... 网站性能优化对于大型网站来说非常重要,一个网站的访问打开速度影响着用户体验度,网站访问速度慢会造成高...
PHP防跨站之open_bas... php为了安全性考虑,有一项 open_basedir 的设置。根据你web服务器环境,open_b...
显示Deprecated: A... 今天把php升级到php5.3之后出现在使用 = 时提示PHP错误Deprecated: Assig...
php中file_get_co... 在php中如果不仔细的去分析性能会发现file_get_contents与curl两个同很多共同点的...