在php的大多数mvc框架中,目录结构都是大同小异,这里介绍一下laravel中的目录结构是怎样的。

首先看下刚刚创建的项目中的根目录

Laravel 项目结构

下面给出根目录下各个文件夹的含义

app目录

app根目录可以说是我们开发的主要目录。一些控制器、模型、方法函数、事件、异常、中间件声明都放在app目录中。如下所示

Laravel 项目结构

下面介绍每个子目录的用途。

Console

Console文件夹包含 Laravel 所需的artisan命令,Console目录包含一个Commands目录,其中所有的命令都在该文件夹中声明。这个在后面详细讲解。

Events

此文件夹包含项目的所有事件。
事件是一个触发机制,有点像数据库中的触发器,比如在我们的网站中,注册成功之后可以发送短信通知。

Exceptions

该文件夹可以存放我们自定义的异常信息,比如校验错误或者网站404错误等。

Http

Http目录用于存放我们的控制器和中间件,也是我们开发中用到最多的目录。

Middleware子目录可以做过滤和响应请求。

Providers

provider是laravel程序的核心所在,包括你自己的应用程序,以及所有的laravel核心服务,都是通过服务提供者启动的。一般而言,我们指的是注册事物,包括注册服务容器绑定、事件侦听器、中间件,甚至路由。服务提供者是设置你的应用程序的中心所在。

bootstrap目录

此文件夹用来存放一些初始化脚本,它包含一个名为 cache 的子文件夹,其中包含与缓存 Web 应用程序相关的所有文件。 您还可以找到文件 app.php,它用于初始化引导程序所需的脚本。

config目录

config 文件夹包含 Laravel 应用程序运行所需的各种配置和相关参数。 配置文件夹中包含的各种文件如下图所示。 文件名根据与它们关联的功能命名。
Laravel 项目结构

database目录

它包括三个子目录,如下所示:
  • Seeds:包含用于单元测试数据库的类。
  • Migrations:用户数据迁移使用。
  • factories:用于生成大量数据记录。

public目录

它是laravel项目的根目录, 它包括以下文件:
  • htaccess:ApacheHTTP Server 的配置文件,推荐使用nginx配置。
  • index.php:项目的入口文件。

resources目录

resources目录用来存放mvc框架的视图文件,它包括以下内容:

  • assets:assets 文件夹包括 LESS 和 SCSS 等文件,它们是 Web 应用程序样式文件。
  • lang:此文件夹为语言配置,可以配置项目的国际化实现。
  • views。 视图文件夹,用来存放视图文件。

storage目录

该目录用来存放日志和一些缓存内容,它包括以下目录:

  • app:此文件夹包含应用生成的文件。
  • framework:此文件夹存放经常调用的会话、缓存和视图。
  • logs:此文件夹中存放所有异常和错误日志。

vender目录

vendor目录包含所有 composer 依赖项。