这篇梳理一下文件夹结构还有目前接触过的一些约定的格式,主要是写一写就记得牢。
文件结构
关于Laravel的文件结构,其实感觉有点像MVC,各种文件按照约定组织放在不同的文件夹里面。按照当前个人的理解,画出下面的这张图。

没有做标注的,是当前我接触比较少的,下面按照主要的几个挨个分析,主要是理解,毕竟像是“路由”、“迁移”之类的词语,整的实在是过于抽象,其实也就是个说法罢了。
composer.json
这个文件是用来管理项目的依赖的,composer是php项目的依赖管理器,可以全局安装也可以给单个项目安装,不过从我这几天做项目的理解来看,composer应该是全局安装的,这样的话,就可以直接生成Laravel项目,感觉比较方便,具体怎么做之后再说。
vendor
这个文件夹就是存放composer配置文件中下载的各种依赖和第三方库的,需要的话直接调用即可。
resources
存放视图和未编译的资源文件,像是SASS这种编译后可以生成样式表的文件。大概可以理解成前端部分的设计了。
package.json
这个是npm管理依赖的配置文件,这个是因为目前前端部分资源文件的编译要用到一系列前端工作流。像是Sass,NPM,Yarn,Laravel Mix之类的东西,需要一定的配置,当然这是后话了。
public
入口文件夹,程序启动的地方,在服务器上挂载的时候,用的也是这个文件夹。
routes
存放的是路由定义,这一部分目前接触到的主要是web界面的路由。这个部分,我简单理解,就是,一个界面有一个路由,增删改查四个功能对应route的四个句柄,再加上界面的路径和处理对应视图的方法,大概就构成了一个访问的过程。
粗浅理解起来像是个定义,至于怎么做,还需要控制器。
database
目前用到的只有一个数据库迁移,感觉就是像php写的通用建表语句。到不同的数据库里面,只需要在配置文件相关数据库完成的情况下直接迁移就能生成对应的数据表结构,感觉很方便。
app.Models
数据模型嘛,这个生成的话还会生成一堆路由,到时候还需要建相关的控制器去实现这些方法。我看代码,似乎Laravel 5这部分内容还在app.Http文件夹里边的,到了8代搬出来了?
app.Http.Controllers
定义了视图和模型的处理方法。视图方面对应的是路由对页面的请求,模型方面我个人感觉主要是增删改查之类的方法定义。
总结
感觉上,就是MVC架构的味道,有数据模型,有控制器,有视图,就是感觉更细分了一点,像是路由只管定义,控制器负责实现等等。
下一个暂时还没想好怎么写,毕竟,都是细节,做过一遍也记不住。😂