Laravel5.1学习笔记10 系统架构2 应用程序结构

应用程序结构

简介

默认的 Laravel 应用程序结构是为了给不管构建大型仍是小型应用程序都提供一个良好的开始。固然,你能够依照喜爱自由地组织应用程序。Laravel 几乎没有限制任何类(class)文件的放置位置 - 只要 Composer 能够自动加载这些类便可。php

根目录

一个全新建立的 Laravel 项目的根目录中包含如下子目录:前端

app 目录,如你所料,包含应用程序的核心代码。咱们以后将会很快深刻地探讨这个目录的细节。laravel

bootstrap 目录包含的几个文件用于启动框架和配置自动加载功能,还有一个 cache 目录,用于存放框架自动生成的文件,可以加速框架启动。数据库

config 目录,顾名思义,包含全部应用程序的配置文件。bootstrap

database 目录包含了数据库迁移与数据填充文件。若是你不介意的话,也能够将 SQLite 数据库文件存放在这个目录中。缓存

public 目录包含了 front controller and your assets (images, JavaScript, CSS, etc.). public 目录包含前端控制器和你的资源文件 (图片、JavaScript、CSS,等等)。session

resources 目录包含你的视图、原始的资源文件 (LESS、SASS、CoffeeScript) 和本地化语言文件。app

storage 目录包含编译后的 Blade 模板、基于文件的 session、文件缓存和其余由框架生成的文件。此目录下面包含三个子目录:appframeworklogsapp 目录用户存放应用程序所用到的任何任何文件;framework 目录用于存放由框架生成的文件和缓存文件;最后,logs 目录用于存放应用程序的日志文件。composer

tests 目录用于存放你的自动化测试文件。Laravel 默认自带了一个 PHPUnit 的实例。框架

vendor 目录用于存放 Composer 的依赖包。

App 目录

 

应用程序的“肉”就在app目录里面, 默认,这个目录命名空间就是App, 被Composer按照PSR-4自动加载标准来自动加载,你能够用app:name 这样的Artisan 命令来改变命名空间。

 

app目录跟着多个子目录,好比Console, Http, 和Providers等,想象Console 和 Http目录提供了要给API直达应用的核心, HTTP协议和CLI都是和应用交互的机制,可是没有真正包含应用逻辑, 也就是说, 他们是下达命令给你的应用的两种途径。 console 目录包含全部的Artisan命令, Http目录包含你的控制器,过滤器,和请求。

 

Jobs目录,固然,装着能够排队的任务, 任务能够被你的应用排队, 也能够被当前的请求生命周期来同步运行。

 

Events目录,就像你指望的,包含事件类, 事件能够被用来警告应用的其余部分,一个动做正在发生,提供了必定的灵活性和解耦。

 

监听者目录包含着事件的Handler类,handlers接收一个事件,而后运行相应的处理逻辑, 举例来讲,一个 UserRegistered事件,而后被SendWelcomeEmail监听者处理。

 

Exceptions目录包含应用的 异常处理handler, 也不失为处理应用抛出任何异常的地方。

注意:在app目录中的许多类能够用Artisan命令来产生。 要查看可使用的命令, 在终端机执行php artisan list make命令

#为应用程序设置命名空间

 

 

如前面所提到的,默认的应用程序命名空间为 App;然而,你还能够以应用程序的名称来做为命名空间,这能够简单地经过 app:name Artisan 命令来完成。例如:若是你的应用程序叫作 "SocialNet",你须要执行下面的命令:

php artisan app:name SocialNet

固然,你仍然能够继续快乐地使用 App 命名空间,

相关文章
相关标签/搜索