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 加载的依赖 |
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:generate 和 make:event |
/Exceptions | 异常处理 | 包含应用的异常处理器 |
/Http | Web应用 | 包含了控制器、中间件以及表单请求等 |
/Jobs | 队列任务 | 存放队列任务。make:job |
/Listeners | 事件监听 | 事件监听器。event:generate 和 make:listener |
邮件 | 邮件相关类。make:mail |
|
/Models | Eloquent模型 | Eloquent模型类。make:model |
/Notifications | 通知 | 发送通知。make:notification |
/Policies | 授权 | 授权策略。make:policy |
/Providers | 服务提供者 | 在应用启动过程中绑定服务到容器、注册事件以及执行其他任务。 |
/Rules | 验证规则 | 在单个对象中封装复杂的验证逻辑。make:rule |
\<命名空间>(\<子命名空间>)*\<类名>
- 完整的类名必须要有一个顶级命名空间,被称为 "vendor namespace";
- 完整的类名可以有一个或多个子命名空间;
- 完整的类名必须有一个最终的类名;
- 完整的类名中任意一部分中的下滑线都是没有特殊含义的;
- 完整的类名可以由任意大小写字母组成;
- 所有类名都必须是大小写敏感的。
- 当根据完整的类名载入相应的文件……
- 完整的类名中,去掉最前面的命名空间分隔符,前面连续的一个或多个命名空间和子命名空间,作为“命名空间前缀”,其必须与至少一个“根目录”相对应;
- 紧接命名空间前缀后的子命名空间必须与相应的”文件基目录“相匹配,其中的命名空间分隔符将作为目录分隔符
- 末尾的类名必须与对应的以 .php 为后缀的文件同名。
- 自动加载器(autoloader)的实现一定不能抛出异常、一定不能触发任一级别的错误信息以及不应该有返回值。
| :--------------------------- | :-------------- | :--------------------- | :---------------------------------------- |
| \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 |
推荐阅读
- EffectiveObjective-C2.0|EffectiveObjective-C2.0 笔记 - 第二部分
- 由浅入深理解AOP
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- Android中的AES加密-下
- 一起来学习C语言的字符串转换函数
- 定制一套英文学习方案
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- 《深度倾听》第5天──「RIA学习力」便签输出第16期
- 如何更好的去学习