Laravel 文件结构
2022-04-21
在不同的开发环境和项目中,文件结构是一个非常重要的一点,如maven的文件结构可以分为src/main/等等,在这些结构中都会有一个默认的“潜规则”。如你在开发项目的时候,还在本地测试阶段,而你却将项目源代码放到了/src/main目录下,这则会让同事觉得你有点问题。Laravel的文件结构也一样,如下:
| ID | DA | FA |
|---|---|---|
| app | 用于包含应用程序的核心代码 | 开发项目的时候所有类都将存放于此 |
| Console | 包含应用程序中所有自定义的Artisan命令 | |
| Events* | 默认情况并不存在,主要用于放置事件类,用于警告应用程序和其他部分发生了一个给定的操作 | |
| Exceptions | 包含应用程序的异常处理,也可放置应用程序跑出的任何异常 | |
| Http | 包含控制器、中间件、表单请求,处理应用程序请求的所有逻辑基本都将放置在此目录 | |
| Jobs* | jobs目录是一般情况下并不存在的,用于包含应用程序的队列 | |
| Listeners* | 默认情况下并不存在,主要用于包含事件处理类 | |
| Mail* | Mail目录并不存在,主要用于包含应用程序发送邮件的类 | |
| Notifications* | 默认情况下不存在,用于包含应用程序发送的所有事物同志 | |
| Policies* | 默认情况下并不存在,主要用于包含授权策略类,即用户是否可以对一个资源进行访问等 | |
| Providers | 用于包含应用程序的所有服务提供者,服务提供者将通过服务容器绑定服务引导程序。在新的Laravel应用中,此项目母吕将会包含一些应用提供者,可根据自己的需求将自己添加到此母吕中 | |
| Rules* | 默认情况并不存在,主要包含应用程序自定义验证规则对象 | |
| bootstrap | 主要包含app.php以及cache目录 | cache用于存放框架所自动生成来提升整体性能文件 |
| Config | 即配置包含了配置文件 | 可阅读这些配置文件来掌握Laravel |
| database | 即数据填充和模型工厂类 | 当然顾名思义你也可以用于放置数据库文件? |
| public | public目录包含了首页文件index.php |
还可用于放置资源文件如js/css/img等 |
| resources | 包含了图像和一些未编译的文件 | 你可用于存放SASS这些 |
| routes | routes 目录包含了所有的路由定义类 | 此外还有默认存在的api.php channels.php console.php web.php路由文件。 |
| web.php | 放置在了web中间件组的路由,提供了会话状态、CSRF防护和cookie加密 | |
| api.php | 放置在api中间件组的路由,提供频率限制,通过路由进入应用请求通过令牌进行认证 | |
| console.php | 定义所有基于终端命令闭包汉书的文件,每个闭包汉书都被绑定到了一个命令示例且允许命令号IO方法的进行简单交互 | |
| storage | 哟用于存储编译后的blade、session、缓存、框架生成的文件 | 内包含了app、framework、logs三个子目录,分别对应应用生成、框架生成、日志生成 |
| storage/app/public | 用于包含用户生成的文件 | |
| tests | 即用于包含自动化测试文件 | 此处潜规则是每个自测试类都以test作为后缀 |
| vendor | 包含项目中所有的 composer 依赖包 |
