【Laravel5.2翻译】应用结构


前阵子看了点Laravel源码,越看越乱,网上大部分中文文档都是直译,比较生涩难懂,还是决定看英文文档顺便就我的理解做下翻译整理记录下来

【Laravel5.2翻译】应用结构_第1张图片
思维导图

简介

默认的Laravel应用程序结构致力于同时为大小应用提供理想的起点。当然,你可以自由根据你的喜好组织自己的应用。Laravel几乎没有限制类的存放位置--只要Composer可以自动加载到。

根目录

新装Laravel的根目录包含多个目录:

  • app目录包含了应用的核心代码。我们很快就会更详细的介绍这个目录。

  • bootstrap目录包含几个用来引导框架和配置自动加载的文件,还有一个cache目录,里面有一些框架生成的文件来优化引导性能。

  • config目录,就如字面上的含义,包含所有应用配置文件。

  • database目录包含你的数据库migrationseed文件。如果你想,你也可以用这个目录来维护一个SQLite数据库。

  • public目录包含前端控制器和你的资源文件(图片,JavaScript,CSS,等等)。

  • resources目录包含你的view,原生资源文件(LESS,SASS,CoffeeScript),和本地化文件。

  • storage目录包含编译过的Blade模板,基于文件的session,文件缓存,和其他框架生成的文件。这个目录被分割成了appframeworklogs这几个目录。app目录存放所有应用用到的文件。framework目录存放框架生成的文件和缓存。最后,logs目包含应用的日志文件。

  • test目录包含你的自动化测试文件。已经提供了一个开箱即用的PHPUnit示例

  • vendor目录包含了Composer依赖项。

App目录

应用的核心代码都位于app目录。默认情况下,这个目录的在App命名空间下同时被Composer用PSR-4自动加载标准自动加载。
app目录装载着多个二级目录例如ConsoleHttpProvidersConsoleHttp为你的应用核心提供了一个API。HTTP协议和CLI都可以实现和应用交互,但不含实际逻辑。也就是说,他们只是给应用程序发放命令的2个途径。Console目录包含了你所有的Artisan命令,Http目录包含controllers、middleware和requests。

Events目录,放置着事件类。Events用来通知你,你应用程序的其他部分发生了给定动作,这为我们编码大大增加了灵活性便于解耦。

Exception目录包含你应用的异常处理,是一个处理任何你应用抛出异常的好地方。

Jobs目录包含应用的可队列化工作,这些工作会被应用程序队列化或者在当前请求生命周期内异步运行。

Listeners目录包含事件的处理类。处理器接收到事件然后在response中对事件执行逻辑。例如,UserRegistered事件可能就会用SendWelcomeEmail监听来处理。

Policies目录包含应用的授权政策类。Policies用来确定用户是否可以对资源执行给定动作。

注意:许多在app目录下的类可以用Artisan通过命令行来生成。在终端中运行php artisan list make命令可以查看可用命令。

你可能感兴趣的:(【Laravel5.2翻译】应用结构)