目录
简介:Discuz!Q 基于 Laravel 框架的 lumen 开发而成,基本目录文件包和文件跟 lumen 官方是一致的,不过 Discuz!Q 也有增加了自己特色功能。
DiscuzQ3.0在2021-6-25号已经发布,目前是 v3.0.210624
为3.0的第一个版本。今天来解剖一个3.0的后端接口以及栏目文件的各个作用。
目录结构
应用目录 /app
app目录包含了应用的核心代码,注意不是框架的核心代码,应用编写的代码绝大多数也会放到这里,当然,如果你基于 Composer 做了 PHP 组件化开发的话,这里面存放的恐怕也只有一些入口性的代码了。
配置目录 /config
config
目录包含了应用所有的配置文件,建议通读一遍这些配置文件以便熟悉 Laravel 所有默认配置项。
数据库目录 /database
database
目录包含了数据库迁移文件及填充文件,如果有使用 SQLite 的话,你还可以将其作为 SQLite 数据库存放目录。
插件栏目 /plugin
Plugin
在 3.0 中看到了一个 plugin 插件栏目,后期在做详细解读。
对外公开目录 /public
public
目录包含了应用入口文件 index.php
和前端资源文件(图片、JavaScript、CSS等),该目录也是 Apache 或 Nginx 等 Web 服务器所指向的应用根目录,这样做的好处是隔离了应用核心文件直接暴露于 Web 根目录之下,如果权限系统没做好或服务器配置有漏洞的话,很可能导致应用敏感文件被黑客窃取,进而对网站安全造成威胁。
资源目录 /resources
resources
目录包含了应用视图文件和未编译的原生前端资源文件(LESS、SASS、JavaScript),以及本地化语言文件;
路由目录 /routes
routes
目录包含了应用定义的所有路由。Discuz!Q 默认提供了四个路由文件用于给不同的入口使用:web.php
、api.php
、 apiadmin.php
和 apiv3.php
。
web.php
目前 是web页面的路由文件,Discuz!Q 搭建了安装install使用。api.php
目前做了微信支付回调,视频转码回调apiadmin.php
只要是后台管理接口。api3.php
- 这个3.0前端核心接口文件,PC端,h5,小程序。注册,登录,帖子都是通过这里的接口来处理。
文件存储目录 /storage
storage
目录包含了编译后的 Blade 模板、基于文件的 Session、文件缓存,以及其它由框架生成的文件,该目录被细分为成 app
、framework
和 logs
子目录,app
目录用于存放应用生成的文件,framework
目录用于存放框架生成的文件和缓存,最后,logs
目录存放的是应用的日志文件。
storage/app/public
目录用于存储用户生成的文件,比如可以被公开访问的用户头像,要达到被 Web 用户访问的目的,你还需要在 public
(应用根目录下的 public
目录)目录下生成一个软连接 storage
指向这个目录。你可以通过 php artisan storage:link
命令生成这个软链接。
Vendor目录 vendor
vendor
目录包含了应用所有通过 Composer 加载的依赖。