对应的文档介绍:https://docs.golaravel.com/docs/5.8/installation

image.png

介绍

默认的Laravel应用程序结构旨在为大型和小型应用程序提供一个很好的起点。但是您可以随意组织您的应用程序。Laravel对任何给定类的位置几乎没有任何限制 - 只要Composer可以自动加载该类。

型号目录在哪里?

当开始使用Laravel时,许多开发人员对缺少models目录感到困惑。但是,缺少这样的目录是故意的。我们发现“模型”这个词含糊不清,因为它对很多不同的人来说意味着许多不同的东西。一些开发人员将应用程序的“模型”称为其所有业务逻辑的总体,而其他开发人员将“模型”称为与关系数据库交互的类。
出于这个原因,我们app默认选择将Eloquent模型放在目录中,并允许开发人员将它们放在其他地方(如果他们选择)。

根目录

应用程序目录

app目录包含应用程序的核心代码。我们很快就会更详细地探索这个目录; 但是,应用程序中的几乎所有类都将位于此目录中。

Bootstrap目录

bootstrap目录包含引导框架的文件。此目录还包含一个目录,其中包含用于性能优化的框架生成文件,例如路由和服务缓存文件。app.php``cache

配置目录

config顾名思义,该目录包含所有应用程序的配置文件。阅读所有这些文件并熟悉所有可用选项,这是一个好主意。

数据库目录

database目录包含数据库迁移,模型工厂和种子。如果您愿意,您也可以使用此目录来保存SQLite数据库。

公共目录

public目录包含该文件,该文件是进入应用程序并配置自动加载的所有请求的入口点。此目录还包含您的资产,如图像,JavaScript和CSS。index.php

资源目录

resources目录包含您的视图以及原始的未编译资产,例如LESS,SASS或JavaScript。该目录还包含您的所有语言文件。

路线目录

routes目录包含应用程序的所有路由定义。默认情况下,有几个途径文件包含Laravel: ,, 和。web.php``api.php``console.php``channels.php
该文件包含中间件组中的位置的路由,这些位置提供会话状态,CSRF保护和cookie加密。如果您的应用程序未提供无状态RESTful API,则很可能在文件中定义所有路由。web.php``RouteServiceProvider``web``web.php
该文件包含中间件组中的位置的路由,这提供了速率限制。这些路由是无状态的,因此通过这些路由进入应用程序的请求旨在通过令牌进行身份验证,并且无法访问会话状态。api.php``RouteServiceProvider``api
您可以在该文件中定义所有基于Closure的控制台命令。每个Closure都绑定到一个命令实例,允许一种简单的方法与每个命令的IO方法进行交互。即使此文件未定义HTTP路由,它也会将基于控制台的入口点(路由)定义到应用程序中。console.php
您可以在该文件中注册应用程序支持的所有事件广播频道。channels.php

存储目录

storage目录包含已编译的刀片模板,基于文件的会话,文件缓存以及框架生成的其他文件。这个目录分成appframeworklogs目录。该app目录可用于存储应用程序生成的任何文件。该framework目录用于存储框架生成的文件和缓存。最后,该logs目录包含应用程序的日志文件。
该目录可用于存储应该可公开访问的用户生成的文件,例如配置文件头像。您应该创建一个指向此目录的符号链接。您可以使用该命令创建链接。storage/app/public``public/storage``php artisan storage:link

测试目录

tests目录包含您的自动化测试。开箱即用的示例PHPUnit测试。每个测试类都应该以单词为后缀Test。您可以使用phpunit或命令运行测试。php vendor/bin/phpunit

供应商目录

vendor目录包含您的Composer依赖项。

应用程序目录

您的大多数应用程序都位于app目录中。默认情况下,此目录在命名空间下App,并由Composer使用PSR-4自动加载标准自动加载
app目录包含了多种额外的目录,如ConsoleHttpProviders。可以将ConsoleHttp目录视为在应用程序核心中提供API。HTTP协议和CLI都是与应用程序交互的机制,但实际上并不包含应用程序逻辑。换句话说,它们是向应用程序发出命令的两种方式。该Console目录包含所有Artisan命令,而该Http目录包含您的控制器,中间件和请求。
app当您使用makeArtisan命令生成类时,将在目录内生成各种其他目录。因此,例如,在您执行Artisan命令以生成作业类之前,该目录将不存在。app/Jobs``make:job

app目录中的许多类都可以由Artisan通过命令生成。要查看可用的命令,请> php artisan list make在终端中运行该命令。

广播目录

Broadcasting目录包含应用程序的所有广播通道类。使用该命令生成这些类。默认情况下,此目录不存在,但会在您创建第一个频道时为您创建。要了解有关频道的更多信息,请查看有关事件广播的文档。make:channel

控制台目录

Console目录包含应用程序的所有自定义Artisan命令。可以使用该命令生成这些命令。此目录还包含控制台内核,您可以在其中注册自定义Artisan命令并定义计划任务make:command

活动目录

该目录默认情况下不存在,但会为你在创建和工匠的命令。该目录包含事件类。事件可用于警告应用程序的其他部分发生了特定操作,从而提供了极大的灵活性和解耦。event:generate``make:event``Events

例外目录

Exceptions目录包含应用程序的异常处理程序,也是放置应用程序抛出的任何异常的好地方。如果要自定义记录或呈现异常的方式,则应修改Handler此目录中的类。

Http目录

Http目录包含您的控制器,中间件和表单请求。处理进入应用程序的请求的几乎所有逻辑都将放在此目录中。

乔布斯目录

默认情况下,此目录不存在,但如果您执行Artisan命令,将为您创建该目录。该目录包含应用程序的可排队作业。作业可以由您的应用程序排队,也可以在当前请求生命周期内同步运行。在当前请求期间同步运行的作业有时被称为“命令”,因为它们是命令模式的实现。make:job``Jobs

听众目录

默认情况下,此目录不存在,但如果您执行或Artisan命令,将为您创建该目录。该目录包含处理事件的类。事件侦听器接收事件实例并执行逻辑以响应被触发的事件。例如,事件可能由侦听器处理。event:generate``make:listener``Listeners``UserRegistered``SendWelcomeEmail

邮件目录

默认情况下,此目录不存在,但如果您执行Artisan命令,将为您创建该目录。该目录包含表示应用程序发送的电子邮件的所有类。邮件对象允许您将构建电子邮件的所有逻辑封装在可以使用该方法发送的单个简单类中。make:mail``Mail``Mail::send

通知目录

默认情况下,此目录不存在,但如果您执行Artisan命令,将为您创建该目录。该目录包含应用程序发送的所有“事务”通知,例如有关应用程序中发生的事件的简单通知。Laravel的通知功能包括通过各种驱动程序(如电子邮件,Slack,SMS或存储在数据库中)发送通知的摘要。make:notification``Notifications

政策目录

默认情况下,此目录不存在,但如果您执行Artisan命令,将为您创建该目录。该目录包含应用程序的授权策略类。策略用于确定用户是否可以对资源执行给定操作。有关更多信息,请查看授权文档make:policy``Policies

提供商目录

Providers目录包含应用程序的所有服务提供程序。服务提供程序通过绑定服务容器中的服务,注册事件或执行任何其他任务来为应用程序准备传入请求来引导应用程序。
在新的Laravel应用程序中,此目录已包含多个提供程序。您可以根据需要随意将自己的提供程序添加到此目录中。

规则目录

默认情况下,此目录不存在,但如果您执行Artisan命令,将为您创建该目录。该目录包含应用程序的自定义验证规则对象。规则用于将复杂的验证逻辑封装在一个简单的对象中。有关更多信息,请查看验证文档make:rule``Rules


个人总结

/routes/web.php 定义了入口程序调用的视图

  1. <?php
  2. /*
  3. |--------------------------------------------------------------------------
  4. | Web Routes
  5. |--------------------------------------------------------------------------
  6. |
  7. | Here is where you can register web routes for your application. These
  8. | routes are loaded by the RouteServiceProvider within a group which
  9. | contains the "web" middleware group. Now create something great!
  10. |
  11. */
  12. Route::get('/', function () {
  13. return view('welcome');
  14. });

其中该welcome视图文件在/resources/views/welcome.blade.php