概念介绍

未匹配的标注

概念介绍

简介

Laravel Jetstream 的架构与其他Laravel应用程序启动脚手架有些不同,如Laravel Breeze。在本文档中,我们将介绍一些高级概念,帮助你了解 Laravel Jetstream 是如何构建的。

Laravel Fortify

在底层, Jetstream 的身份验证部分是由 Laravel Fortify 提供支持, 它是一个与前端无关的 “headless(无头)” 后端身份验证, 专为Laravel设计。

Fortify 注册了所有Laravel身份验证功能需要实现的路由和控制器, 包括登录、注册、密码重置、电子邮件验证等。安装 Fortify 后, 你可以运行 route:list Artisan 命令来查看 Fortify 注册的路由.

由于Fortify不提供自己的用户界面,它需要与你自己的用户界面配合使用,该用户界面向它注册的路由发出请求。Laravel Jetstream是我们基于Fortify 后端身份验证构建的用户界面一方面的实现。

Fortify 配置

安装 Jetstream 时,将安装一个 config/fortify.php 配置文件到你的应用程序中。在这个配置文件中,你可以自定义 Fortify 行为的各个方面,例如应该使用的身份验证守卫、用户在身份验证后应该重定向到哪里等。

fortify 配置文件中,你还可以禁用 Fortify 的全部功能,比如更新个人资料或密码的功能。

Actions

Laravel Breeze 相比,Laravel Jetstream 不会向你的应用发布控制器或路由。相反,Jetstream 的功能通过 “Action” 类进行自定义。在 Jetstream 安装过程中,actions 将被发布到你的应用的 app/Actions 目录下。

Action 类通常执行单个 action,并对应于一个 Jetstream 或 Fortify 的功能,如创建一个团队或删除一个用户。如果你想调整 Jetstream 的后端行为,可以自由地自定义这些类。Jetstream 发布的每个相关 actions 都将在相应功能的文档中说明。

视图 / 页面

在安装过程中,Jetstream 会发布各种视图和类到你的应用。在使用Livewire时,视图将发布到你的应用 resources/views 目录下。在使用Inertia时,”Pages(页面)” 将发布到你的 resources/js/Pages 目录下。

Jetstream 发布的 视图/页面 包含了 Jetstream 支持的所有功能,你可以根据需要自由地自定义它们。把 Jetstream 当作是你的应用的一个起点。一旦你安装了Jetstream,你可以自由地自定义任何你喜欢的内容。

布局

应用布局

在安装完成后,你的 Jetstream 应用程序将包含两个”布局”。首先,Jetstream创建了一个应用布局,用于定义需要身份验证的应用程序页面(例如应用程序仪表板)的布局。当使用 Livewire 技术栈架时,这个布局在 resources/views/layouts/app.blade.php 中定义,并由 App\View\Components\AppLayout 类渲染。当使用 Inertia 技术栈时,在 resources/js/Layouts/AppLayout.vue 中定义该布局。

Livewire访客 / 身份验证布局

除了应用布局外,Jetstream 还创建了一个 “Guest(访客)” 布局,用于定义 Jetstream 的身份验证相关页面的布局,例如应用程序的登录、注册和密码重置页面。当使用 Livewire 技术栈时,这个布局在 resources/views/layouts/guest.blade.php 定义,并由App\View\Components\GuestLayout类渲染。

仪表板

当使用Livewire时,你的应用程序的 “主” 视图发布在resources/views/dashboard.blade.php,当使用 Inertia 时,则发布在 resources/js/Pages/Dashboard.vue。你可以自由地使用这个作为构建你的应用程序的主要 “仪表板” 的起点。

Tailwind

在安装过程中,Jetstream 将构建应用程序与 Tailwind CSS 框架的集成。具体来说,将创建一个postcss.config.js文件和tailwind.config.js文件。这两个文件被用来构建你的应用程序的编译CSS输出。你可以根据你的应用程序的需要自由修改这些文件。

此外,你的 tailwind.config.js 文件已经预先配置为支持 PurgeCSS,并根据你选择的 Jetstream 前端技术栈正确指定相关目录。

你应用程序的package.json文件已经有了可用于编译资源的 NPM 命令,你可以使用它们来编译你的资源。有关编译应用程序资源的更多信息,请参阅 Vite documentation 文档:

# 在开发环境下编译CSS / JavaScript,并在更改时重新编译...
npm run dev

# 编译你的 CSS/JavaScrip 用于生产环境...
npm run build

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 0
发起讨论 只看当前版本


暂无话题~