genesis

genesis

现代化Laravel应用开发框架Genesis

Genesis是一个集成TALL Stack、Volt和Folio的Laravel开发框架。该框架提供认证、用户仪表盘、个人资料管理等功能模块和UI组件库。Genesis旨在简化开发流程,帮助开发者快速构建现代化Web应用。其预置功能和组件适用于多种类型的项目开发,可提高开发效率。

GenesisLaravelTALL StackFolioVoltGithub开源项目
<p align="center"><a href="https://github.com/thedevdojo/genesis" target="_blank"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/thedevdojo/genesis/main/art/logo-light.svg"> <source media="(prefers-color-scheme: light)" srcset="https://yellow-cdn.veclightyear.com/2b54e442/3b60fa50-d790-4c2f-b741-e5cc3aae5366.svg"> <img alt="Genesis 标志" width="240" src="https://yellow-cdn.veclightyear.com/2b54e442/3b60fa50-d790-4c2f-b741-e5cc3aae5366.svg"> </picture></a></p> <p align="center" class="flex mx-auto space-x-2"> <a href="https://github.com/thedevdojo/genesis/actions"><img src="https://yellow-cdn.veclightyear.com/2b54e442/79790355-804f-41d0-84f8-acde9ab7dc3c.svg" alt="构建状态"></a> <a href="https://packagist.org/packages/devdojo/genesis"><img src="https://img.shields.io/packagist/dt/devdojo/genesis" alt="总下载量"></a> </p>

关于 Genesis

Genesis 是一个 Laravel 启动套件,它使用了 TALL Stack,以及单文件 VoltFolio 文件。这个启动套件包含认证用户仪表板编辑个人资料和一套UI 组件

<p><img src="https://yellow-cdn.veclightyear.com/2b54e442/3c550733-eaa1-4e5d-84c1-c3be4dca259a.png" alt="genesis 封面" /></p>

对以下技术有良好的理解将会很有帮助(Genesis 就是基于这些技术构建的):

在下面了解如何安装和配置 Genesis。

安装

这个预设旨在安装到一个全新的 Laravel 应用中。

创建一个新的 Laravel 应用后,你可以使用以下命令安装 Genesis:

composer require devdojo/genesis dev-main php artisan ui genesis

要使用基于类的 API,请包含 --option=class。例如:php artisan ui genesis --option=class

接下来,请确保编译你的资源:

npm install && npm run dev

[!重要] 如果你使用 Laravel 安装程序并选择了 sqlite 作为数据库,可能已经运行了迁移。在这种情况下,你就准备就绪了 🎉 否则,你需要连接一个数据库并运行以下命令 👇

php artisan migrate

访问你的应用主页,你应该就可以开始使用了 🤘

应用中的路由

目前 Genesis 创建了 11 个路由,包括主页、认证、仪表板视图和其他几个。你可以使用 php artisan folio:list 命令查看应用中当前的所有路由:

GET / ................................................ index.blade.php GET /about ........................................... about.blade.php GET /auth/login ................................. auth/login.blade.php GET /auth/password/confirm ........... auth/password/confirm.blade.php GET /auth/password/reset ............... auth/password/reset.blade.php GET /auth/password/{token} ........... auth/password/[token].blade.php GET /auth/register ........................... auth/register.blade.php GET /auth/verify ............................... auth/verify.blade.php GET /dashboard ............................. dashboard/index.blade.php GET /learn ..................................... learn/index.blade.php GET /profile/edit ............................. profile/edit.blade.php 显示 [11] 个路由

让我们来介绍 Genesis 提供的每个页面。

主页

主页(上面👆显示的截图)位于 resources/views/pages/index.blade.php。这个文件以及所有其他页面都使用了基于页面的路由,这要归功于 Folio。

这个文件包含一个 redirect-to-dashboard 中间件,它在文件顶部注册:

middleware(['redirect-to-dashboard']);

这将在已认证用户尝试访问主页时将其重定向到仪表板。如果你不希望重定向已认证用户,可以简单地删除这行。

关于页面

这是一个简单的关于页面,你可以随意删除或在应用中使用。这个页面还包含 ui/marketing/breadcrumbs.blade.php 组件,也可以在任何其他营销页面上使用。

认证页面

所有认证文件都位于 resources/views/pages/auth 文件夹内。这些文件通过 Folio 映射到路由。以下是当前的认证路由:

  1. login.blade.php
  2. register.blade.php
  3. verify.blade.php
  4. password/confirm.blade.php
  5. password/reset.blade.php
  6. password/[token].blade.php

仪表板页面

仪表板页面非常简洁,这使得你可以轻松自定义。你会注意到这个页面有以下中间件:

middleware(['auth', 'verified']);

你可能想要将这个中间件添加到应用中的许多页面,以确保用户已认证并验证。

编辑个人资料页面

编辑个人资料页面位于 resources/views/profile/edit,也可以通过访问 url.com/profile/edit 加载。这个文件包含与仪表板页面相同的中间件,这意味着用户必须经过认证和验证才能访问。

这个页面有三个不同的部分:

  1. 更新个人资料部分,用户可以在这里更新他们的姓名和电子邮件。
  2. 更新密码部分,用户可以在这里更新他们的密码。
  3. 删除个人资料部分,用户可以在这里删除他们的个人资料。

要了解更多关于这个文件的信息,请访问 Wiki 中的文档

学习页面

这个页面显示 Genesis 的 Readme 文件。它只是获取你现在正在阅读的 README.md 文件并在仪表板中显示。

布局

Genesis 中有三种布局,位于 resources/views/components/layouts 内:

  1. app.blade.php - 这是与你的应用相关的任何页面的布局(用户必须经过认证)
  2. marketing.blade.php - 这是用于你的主页、博客和任何其他营销页面的布局。
  3. main.blade.php - 这是包含你网站主要 HTML 结构的布局。appmarketing 模板都继承自这个主模板。

你可以如下使用这些布局:

<!-- 应用布局 --> <x-layouts.app> <!-- 内容在这里... --> </x-layouts.app> <!-- 营销布局 --> <x-layouts.marketing> <!-- 内容在这里... --> </x-layouts.marketing> <!-- 主布局 --> <x-layouts.main> <!-- 内容在这里... --> </x-layouts.main>

有时你可能想为一个页面使用主布局。这些可能是你不需要 appmarketing 页眉/页脚内容的用例。例如,auth 页面继承布局

UI 组件

我们还提供了一些 Blade 组件,你可以在新应用中使用,它们位于 resources/views/components/ui 内。这些组件包括:

  • button
  • checkbox
  • input
  • light-dark-switch
  • link
  • logo
  • modal
  • nav-link
  • placeholder
  • select
  • text-link

UI 组件内还有两个文件夹,包括 appmarketing。每个都对应可用的 appmarketing 布局。以下是这些文件夹中可用的组件:

-- app.header -- marketing.header -- marketing.breadcrumbs

所有这些组件都很容易理解;然而,你可能想了解每个组件的工作原理,这样你就可以充分利用它们。

更新整个应用中的 logo 就像用你的 logo SVG 或图像更新 logo.blade.php 组件一样简单。

测试

Genesis 有一些基本测试来测试认证功能。你可以通过运行以下命令来检查这些测试:

./vendor/bin/pest

tests/Feature 文件夹内的每个测试文件都对应 resources/views/pages 文件夹中的每个页面。

故障排除

有时你可能会在视图中看到打印出的行号,导致布局和输出异常。你需要运行 php artisan view:clear。这可能是因为 Folio 和 Volt 仍处于测试阶段 😉

NPM 错误

如果你在 http://localhost:5173 上看到错误,请尝试:

npm upgrade

Laravel 安装程序问题

根据你安装 Laravel 的方式,APP_URL 会被设置得不同。有些人可能使用 Laravel 安装程序,有些人可能使用 Composer。Vite 在 http://localhost:5173 上提供服务,而应用的其他部分使用 http://[::1]:5173。

为获得最佳结果,请尝试以下方法:

composer create-project --prefer-dist laravel/laravel genesis-app

然后在 .env 文件中更改你的 APP_URL:

APP_URL=http://127.0.0.1:8000

然后启动 npm 服务器和 Laravel 服务器:

npm run dev
php artisan serve

鸣谢

许可

MIT 许可证 (MIT)。请查看 许可证文件 以获取更多信息。

编辑推荐精选

Pixmax

Pixmax

一站式AI短剧创作平台

Pixmax专注打造下一代“ AI 视觉创作引擎”,整合行业顶尖 AI 大模型、工工业级精准控制及企业级协同管理功能,是全方位的 AI 内容创作平台。

豆包

豆包

字节跳动旗下 AI 智能助手

字节跳动旗下 AI 智能助手

GPT Plus|Pro充值

GPT Plus|Pro充值

GPT充值

支持 ChatGPT Plus / Pro 充值服务,支付便捷,自动发货,售后可查。

GPT Image 2中文站

GPT Image 2中文站

AI 图片生成平台

GPT Image 2 是面向用户的 AI 图片生成平台,支持文生图、图生图及多模型创意工作流。

Vecbase

Vecbase

你的AI Agent团队

Vecbase 是专为 AI 团队打造的智能工作空间,将数据管理、模型协作与知识沉淀整合于一处。算法、产品与业务在同一平台无缝协同,让从数据到 AI 应用的落地更快一步。

音述AI

音述AI

全球首个AI音乐社区

音述AI是全球首个AI音乐社区,致力让每个人都能用音乐表达自我。音述AI提供零门槛AI创作工具,独创GETI法则帮助用户精准定义音乐风格,AI润色功能支持自动优化作品质感。音述AI支持交流讨论、二次创作与价值变现。针对中文用户的语言习惯与文化背景进行专门优化,支持国风融合、C-pop等本土音乐标签,让技术更好地承载人文表达。

QoderWork

QoderWork

阿里Qoder团队推出的桌面端AI智能体

QoderWork 是阿里推出的本地优先桌面 AI 智能体,适配 macOS14+/Windows10+,以自然语言交互实现文件管理、数据分析、AI 视觉生成、浏览器自动化等办公任务,自主拆解执行复杂工作流,数据本地运行零上传,技能市场可无限扩展,是高效的 Agentic 生产力办公助手。

lynote.ai

lynote.ai

一站式搞定所有学习需求

不再被海量信息淹没,开始真正理解知识。Lynote 可摘要 YouTube 视频、PDF、文章等内容。即时创建笔记,检测 AI 内容并下载资料,将您的学习效率提升 10 倍。

AniShort

AniShort

为AI短剧协作而生

专为AI短剧协作而生的AniShort正式发布,深度重构AI短剧全流程生产模式,整合创意策划、制作执行、实时协作、在线审片、资产复用等全链路功能,独创无限画布、双轨并行工业化工作流与Ani智能体助手,集成多款主流AI大模型,破解素材零散、版本混乱、沟通低效等行业痛点,助力3人团队效率提升800%,打造标准化、可追溯的AI短剧量产体系,是AI短剧团队协同创作、提升制作效率的核心工具。

seedancetwo2.0

seedancetwo2.0

能听懂你表达的视频模型

Seedance two是基于seedance2.0的中国大模型,支持图像、视频、音频、文本四种模态输入,表达方式更丰富,生成也更可控。

下拉加载更多