【PHP 随记】—— laravel 目录结构分析
(1)app目录\textbf{app 目录}app目录:项目的核心目录,主要用于存放核心代码,也包括控制器、模型、中间件。
👉总目录👈 \large\colorbox{skyblue}{👉总目录👈} 👉总目录👈
目录文件介绍
|-- app
|-- bootstrap
|-- config
|-- database
|-- public
|-- resources
|-- routes
|-- storage
|-- tests
|-- vendor
(1) app 目录 \textbf{app 目录} app 目录:项目的核心目录,主要用于存放核心代码,也包括控制器、模型、中间件。
app
|-- Console
|-- Exceptions
|-- Http // 存放控制器
|-- Controllers // 控制器目录
|-- Controller.php // 基础控制类
|-- Middleware // 中间件目录
|-- Kernel.php // 框架核心文件
|-- Models
|-- Providers
(2) bootstrap 目录 \textbf{bootstrap 目录} bootstrap 目录:包含启动框架的 app.php 文件。 该目录还包含了一个 cache 目录,cache 目录下存放着框架生成的用来提升性能的文件,比如路由和服务缓存文件。
bootstrap
|-- cache
|-- app.php
(3) config 目录 \textbf{config 目录} config 目录:项目的配置目录,主要存放配置文件,比如项目总体配置、数据库的配置等。
config
|-- app.php
|-- auth.php
|-- broadcasting.php
|-- cache.php
|-- cors.php
|-- database.php
|-- filesystems.php
|-- hashing.php
|-- logging.php
|-- mail.php
|-- queue.php
|-- sanctum.php
|-- services.php
|-- session.php
|-- view.php
- app.php:全局配置文件,在后期开发的时候需要频繁的使用这个配置文件;
- auth.php:用户登录时候需要用到的用户认证模块的配置文件;
- database.php:数据库的配置文件;
- filesystems.php:文件系统(如文件存储等)的配置文件;
(4) database 目录 \textbf{database 目录} database 目录:包含数据填充和迁移文件以及模型工厂类,还可以把它作为 SQLite 数据库存放目录。
database
|-- factories
|-- migrations
|-- seeders
- factories:存放一些工厂模式需要用的一些文件;
- migrations:迁移,存放的是迁移文件(创建/删除/修改数据表操作的类文件);
- seeds:播种、种子,存放的是种子(填充器)文件(模拟向数据表中写入数据的操作类
(5) public 目录 \textbf{public 目录} public 目录:项目的入口文件和系统的静态资源目录(css,img,js,uploads)。
后期使用的外部静态文件(js、css、图片等)都需要放到 Public 目录。
并且后期的网站的根目录也是这个目录(apache 的 documentroot 目录为该目录路径)
(6) resources 目录 \textbf{resources 目录} resources 目录:存放视图文件,还有就是语言包文件的目录。
- lang:存储语言包的目录;
- views:视图文件存储目录;
(7) routes 目录 \textbf{routes 目录} routes 目录:包含了应用的所有路由定义,Laravel 默认包含了几个路由文件:web.php、api.php、 console.php 和 channels.php。
(8) storage 目录 \textbf{storage 目录} storage 目录:主要是存放缓存文件和日志文件,注意,如果在 linux 环境下,该目录需要有可写权限。(后期用户上传文件如果存在本地则也在 storage 下。
storage
|-- app
|-- framework
|-- logs
- app:保存用户上传文件的路径;
- framework:框架自带的文件存储目录;
- logs:框架的日志文件存储位置;
(9) tests 目录 \textbf{tests 目录} tests 目录:包含自动化测试文件,其中默认已经提供了一个开箱即用的 PHPUnit 示例;每一个测试类都要以 Test 开头,可以通过 phpunit
或 php vendor/bin/phpunit
命令来运行测试。
(10) vendor 目录 \textbf{vendor 目录} vendor 目录:主要是存放第三方的类库文件;laravel 思想主要是共同的开发,不要重复的造轮子(例如,里面可能存在验证码类,上传类,邮件类),该目录还存放 laravel 框架的源码。注意如果要使用 composer 软件管理的,composer 下载的类库都是存放在该目录下面的。
其他常用文件介绍
(11) .env 文件 \textbf{.env 文件} .env 文件:主要是设置一些系统相关的环境配置文件信息。config 目录里面的文件配置内容一般都是读取该文件里面的配置信息(config 里面的配置项的值基本都是来自.env 文件)。
(12) artisan 脚手架文件 \textbf{artisan 脚手架文件} artisan 脚手架文件:主要用于生成的代码的(自动生成),比如生成控制器,模型文件等。
(13) composer.json 依赖包配置文件 \textbf{composer.json 依赖包配置文件} composer.json 依赖包配置文件:composer 需要使用,声明当前需要的软件依赖,不能删除。
更多推荐
所有评论(0)