应用程序结构 | 系统架构 |《Laravel 5.1 中文文档 5.1》| Laravel China 社区


本站和网页 https://learnku.com/docs/laravel/5.1/structure/1051 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

应用程序结构 | 系统架构 |《Laravel 5.1 中文文档 5.1》| Laravel China 社区
Laravel
话题列表
社区 Wiki
优质外文
招聘求职
Laravel 实战教程
社区文档
登录
注册
Laravel 5.1 中文文档
展开或关闭
前言
翻译说明
发行说明
升级导引
贡献导引
环境配置
安装
Homestead
基本功能
路由
中间件
控制器
请求
响应
视图
Blade 模板
教程
初级任务清单
中级任务清单
系统架构
请求生命周期
应用程序结构
服务提供者
服务容器
Contracts
Facades
系统服务
用户认证
用户授权
Artisan 命令行
交易
缓存
集合
Elixir
加密与解密
错误与日志
事件
文件系统与云存储
哈希
辅助函数
本地化
邮件
扩展包开发
分页
队列
Redis
Session
Envoy
任务调度
测试
表单验证
数据库
入门
查询构造器
数据库迁移
数据填充
Eloquent ORM
入门
模型关联
Eloquent 集合
Getter/Setter
序列化
Laravel
首页
Laravel
Go
PHP
Vue.js
Python
Java
MySQL
Rust
LK
Elasticsearch
F2E 前端
Server
程序员
Database
DevTools
Computer Science
手机开发
AdonisJS
社区
Wiki
教程
Laravel 实战教程首页
《L01 Laravel 教程 - Web 开发实战入门》
《L02 Laravel 教程 - Web 开发实战进阶》
《L03 Laravel 教程 - 实战构架 API 服务器》
《L04 Laravel 教程 - 微信小程序从零到发布》
《L05 Laravel 教程 - 电商实战》
《L06 Laravel 教程 - 电商进阶》
《LX1 Laravel / PHP 扩展包视频教程》
《LX2 PHP 扩展包实战教程 - 从入门到发布》
《L07 Laravel 教程 - Laravel TDD 测试实战》
《LX3 Laravel 性能优化入门》
《LX4 Laravel / PHP 五分钟视频》
文档
社区文档首页
《Laravel 中文文档》
《Laravel 速查表》
《PHP 代码简洁之道》
《Laravel 编码技巧》
《Dcat Admin 中文文档》
《Laravel Nova 中文文档》
《Lumen 中文文档》
《Dingo API 中文文档》
《 Laravel 项目开发规范》
《构建 Laravel 开发环境》
登录
注册
微信登录
提交改进
应用程序结构
5.1
9.x
8.5
8.x
7.x
6.x
5.8
5.7
5.6
5.5
5.4
5.3
5.2
5.1
Laravel 5.1 中文文档
未匹配的标注
本文档最新版为 9.x,旧版本可能放弃维护,推荐阅读最新版!
应用程序结构
简介
根目录
App 目录
为应用程序设置命名空间
简介
默认的 Laravel 应用程序结构意在给不同大小的应用程序提供一个好的起始点。当然,你也可以依照个人喜好来随意组织应用程序。Laravel 几乎没有对任何类的放置位置进行强加限制 - 只要 Composer 可以自动加载这些类即可。
根目录
一个新安装的 Laravel 根目录包含许多个文件夹:
app 目录,如你所料,这里面包含应用程序的核心代码。我们之后将很快对这个目录的细节进行深入探讨。
bootstrap 目录包含了几个框架启动跟自动加载设置的文件。以及在 cache 文件夹中包含着一些框架在启动性能优化时所生成的文件。
config 目录,顾名思义,包含所有应用程序的配置文件。
database 目录包含数据库迁移与数据填充文件。如果你愿意的话,你也可以在此文件夹存放 SQLite 数据库。
public 目录包含了前端控制器和资源文件(图片、JavaScript、CSS,等等)。
resources 目录包含了视图、原始的资源文件 (LESS、SASS、CoffeeScript) ,以及语言包。
storage 目录包含编译后的 Blade 模板、基于文件的 session、文件缓存和其它框架生成的文件。此文件夹分格成 app、framework,及 logs 目录。app 目录可用于存储应用程序使用的任何文件。framework 目录被用于保存框架生成的文件及缓存。最后,logs 目录包含了应用程序的日志文件。
tests 目录包含自动化测试。这有一个现成的 PHPUnit 例子。
vendor 目录包含你的 Composer 依赖模块。
App 目录
应用程序的「内容」存在于 app 目录中。默认情况下,这个目录在 App 命名空间下借助 Composer 使用 PSR-4 自动加载标准自动加载。你可以使用 app:name Artisan 命令修改这个命名空间。
app 目录附带许多个额外的目录,例如:Console、Http 和 Providers。可以将 Console 和 Http 目录试想为提供 API 进入应用程序的「核心」。HTTP 协定和 CLI 都是跟应用程序进行交互的机制,但实际上并不包含应用程序逻辑。换句话说,它们是两种简单地发布命令给应用程序的方法。Console 目录包含你全部的 Artisan 命令,而 Http 目录包含你的控制器、中间件和请求。
Jobs 目录用于放置应用程序 可队列的任务。任务可以被应用程序放到队列中,也可以在当前请求生命周期内同步运行。
Events 目录,如你所料,是用来放置 事件类 的。事件可以被用于当指定动作发生时,通知你应用程序的其它部分,提供了很棒的灵活性及解耦。
Listeners 目录了包含事件的处理类。处理进程接收一个事件,并针对该事件运行逻辑。例如,UserRegistered 事件可能由 SendWelcomeEmail 侦听器处理。
Exceptions 目录包含应用程序的异常处理进程,同时也是个处置应用程序抛出异常的好位置。
注意:在 app 目录中的许多类可以通过 Artisan 命令生成。若要查看可以使用的命令,只要在命令行运行 php artisan list make 命令即可。
为应用程序设置命名空间
如前面所提到的,默认的应用程序命名空间为 App;然而,你可以简单地借由 app:name Artisan 命令,将此命名空间修改成应用程序的名称。例如:如果你的应用程序叫做「SocialNet」,你可以运行下方的命令来进行更改:
php artisan app:name SocialNet
当然,你也可以接着使用 App 命名空间。
本文章首发在 LearnKu.com 网站上。
上一篇
下一篇
Markdown 文本
纠错改进
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
推荐文章:
更多推荐...
分享创造
如何找到你的第一份远程工作与海外外包-远程工作篇(放了个TS全栈教学的广告,不喜欢立删...)
33
21
1个月前
博客
消息中间件应用的常见问题与方案
20
7个月前
博客
笛卡尔积的应用——商品 SKU 计算
16
7个月前
博客
laravel-soar(2.x) - 自动监控输出 SQL 优化建议、辅助 laravel 应用 SQL 优化
29
37
8个月前
博客
系统崩溃了,网站响应慢了,你是如何快速定位错误信息的?
17
1年前
博客
Tailwind CSS 在小程序中的应用
21
10
1年前
讨论数量: 0
发起讨论
只看当前版本
暂无话题~
社区赞助商
成为赞助商
关于 LearnKu
LearnKu 是终身编程者的修道场
做最专业、严肃的技术论坛
LearnKu 诞生的故事
资源推荐
《社区使用指南》
《文档撰写指南》
《LearnKu 社区规范》
《提问的智慧》
服务提供商
其他信息
成为版主
所有测验
联系站长(反馈建议)
粤ICP备18099781号-6
粤公网安备 44030502004330号
违法和不良信息举报
由 Summer 设计和编码 ❤
请登录
提交
忘记密码?
or
注册
第三方账号登录
微信登录
GitHub 登录
内容举报
匿名举报,为防止滥用,仅管理员可见举报者。
我要举报该,理由是:
垃圾广告:恶意灌水、广告、推广等内容
无意义内容:测试、灌水、文不对题、消极内容、文章品质太差等
违规内容:色情、暴利、血腥、敏感信息等
不友善内容:人身攻击、挑衅辱骂、恶意行为
科学上网:翻墙、VPN、Shadowsocks,政策风险,会被关站!
不懂提问:提问太随意,需要再做一遍《提问的智慧》测验
随意提问:提问没有发布在社区问答分类下
排版混乱:没有合理使用 Markdown 编写文章,未使用代码高亮
内容结构混乱:逻辑不清晰,内容混乱,难以阅读
标题随意:标题党、标题不释义
尊重版权:分享付费课程、破解软件(付费),侵犯作者劳动成果
其他理由:请补充说明
举报
取消