根目录
目录 | 二级目录 | 简介 | 作用 |
---|---|---|---|
/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: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 |
备注
PSR-4自动载入标准 https://learnku.com/docs/psr/...
1. 此处的“类”泛指所有的class类、接口、traits可复用代码块以及其它类似结构。
2. 一个完整的类名需具有以下结构:
\<命名空间>(\<子命名空间>)*\<类名>
- 完整的类名必须要有一个顶级命名空间,被称为 "vendor namespace";
- 完整的类名可以有一个或多个子命名空间;
- 完整的类名必须有一个最终的类名;
- 完整的类名中任意一部分中的下滑线都是没有特殊含义的;
- 完整的类名可以由任意大小写字母组成;
- 所有类名都必须是大小写敏感的。
- 当根据完整的类名载入相应的文件……
- 完整的类名中,去掉最前面的命名空间分隔符,前面连续的一个或多个命名空间和子命名空间,作为“命名空间前缀”,其必须与至少一个“根目录”相对应;
- 紧接命名空间前缀后的子命名空间必须与相应的”文件基目录“相匹配,其中的命名空间分隔符将作为目录分隔符
- 末尾的类名必须与对应的以 .php 为后缀的文件同名。
- 自动加载器(autoloader)的实现一定不能抛出异常、一定不能触发任一级别的错误信息以及不应该有返回值。
3. 范例
| 完整类名 | 命名空间前缀 | 文件基目录 | 文件路径 |
| :--------------------------- | :-------------- | :--------------------- | :---------------------------------------- |
| \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 |
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。