Laravel8学习笔记01 - 目录结构

根目录

目录 二级目录 简介 作用
/app 应用目录 应用的核心代码
/bootstrap 启动目录
app.php 框架的启动和自动载入配置
./cache 路由和服务缓存 框架为提升性能所生成的文件
/config 配置目录
/database 数据库目录 数据库迁移文件及填充文件
/public 对外公开目录 应用入口文件和前端资源文件
index.php 应用入口文件
/resources 资源目录 应用视图文件和未编译的原生前端资源文件
/routes 路由目录
web.php web 中间件组 支持 Session、CSRF 保护以及 Cookie 加密功能
api.php api 中间件组 支持频率限制功能
console.php 控制台命令 用于定义所有基于闭包的控制台命令
channels.php 用于注册应用支持的所有事件广播频道
/storage 文件存储目录 Blade 、 Session、文件缓存,框架生成的文件
./app 应用生成的文件
./public 用于存储用户生成的文件
./framework 框架生成的文件和缓存
./logs 应用的日志文件
/tests 测试目录 可以通过 phpunit命令运行测试
/vendor 依赖目录 包含了应用所有通过 Composer 加载的依赖
备注 1.控制台路由 /routes/console.php
Artisan::command('inspire', function () { $this->comment(Inspiring::quote()); })->purpose('Display an inspiring quote'); php artisan inspire

应用目录 /app
目录 简介 作用
/Broadcasting 广播频道类 事件广播。make:channel
/Console 任务脚本 注册Artisan命令,定义调度任务。make:command
/Events 事件 存放事件类。event:generatemake:event
/Exceptions 异常处理 包含应用的异常处理器
/Http Web应用 包含了控制器、中间件以及表单请求等
/Jobs 队列任务 存放队列任务。make:job
/Listeners 事件监听 事件监听器。event:generatemake:listener
/Mail 邮件 邮件相关类。make:mail
/Models Eloquent模型 Eloquent模型类。make:model
/Notifications 通知 发送通知。make:notification
/Policies 授权 授权策略。make:policy
/Providers 服务提供者 在应用启动过程中绑定服务到容器、注册事件以及执行其他任务。
/Rules 验证规则 在单个对象中封装复杂的验证逻辑。make:rule
备注 PSR-4自动载入标准 https://learnku.com/docs/psr/... 1. 此处的“类”泛指所有的class类、接口、traits可复用代码块以及其它类似结构。 2. 一个完整的类名需具有以下结构:
\<命名空间>(\<子命名空间>)*\<类名>

  1. 完整的类名必须要有一个顶级命名空间,被称为 "vendor namespace";
  2. 完整的类名可以有一个或多个子命名空间;
  3. 完整的类名必须有一个最终的类名;
  4. 完整的类名中任意一部分中的下滑线都是没有特殊含义的;
  5. 完整的类名可以由任意大小写字母组成;
  6. 所有类名都必须是大小写敏感的。
  7. 当根据完整的类名载入相应的文件……
  8. 完整的类名中,去掉最前面的命名空间分隔符,前面连续的一个或多个命名空间和子命名空间,作为“命名空间前缀”,其必须与至少一个“根目录”相对应;
  9. 紧接命名空间前缀后的子命名空间必须与相应的”文件基目录“相匹配,其中的命名空间分隔符将作为目录分隔符
  10. 末尾的类名必须与对应的以 .php 为后缀的文件同名。
  11. 自动加载器(autoloader)的实现一定不能抛出异常、一定不能触发任一级别的错误信息以及不应该有返回值。
3. 范例 【Laravel8学习笔记01 - 目录结构】| 完整类名 | 命名空间前缀 | 文件基目录 | 文件路径 |
| :--------------------------- | :-------------- | :--------------------- | :---------------------------------------- |
| \Acme\Log\Writer\File_Writer | Acme\Log\Writer | ./acme-log-writer/lib/ | ./acme-log-writer/lib/File_Writer.php |
| \Aura\Web\Response\Status | Aura\Web | /path/to/aura-web/src/ | /path/to/aura-web/src/Response/Status.php |
| \Symfony\Core\Request | Symfony\Core | ./vendor/Symfony/Core/ | ./vendor/Symfony/Core/Request.php |
| \Zend\Acl | Zend | /usr/includes/Zend/ | /usr/includes/Zend/Acl.php |

    推荐阅读