我不想在核心代码中维护一个只会被使用一次的复杂模板机制,为了方便开发者快速开发、定制或贡献自己的模板,为前端单独抽出一个仓库和文档!

news/2026/1/25 12:08:53/文章来源:https://www.cnblogs.com/teanary/p/19529098

开源项目地址:https://gitee.com/teanary/teanary_template
项目地址:https://teanary.com/zh_CN/index.html

这是一个独立的模板仓库,包含了 Teanary 电商系统的所有前端视图模板文件。这个仓库的目的是方便开发者快速开发、定制或贡献自己的模板。

📁 目录结构

templates/
├── auth/                    # 认证相关模板
│   └── verify-email.blade.php
├── components/              # 组件模板
│   ├── layouts/            # 布局组件
│   │   ├── app.blade.php
│   │   ├── manager.blade.php
│   │   └── seo.blade.php
│   ├── manager/            # 管理后台组件
│   ├── payment/            # 支付相关组件
│   ├── users/              # 用户相关组件
│   ├── widgets/            # 小部件组件
│   └── ...
├── errors/                  # 错误页面模板
│   ├── 404.blade.php
│   ├── 500.blade.php
│   └── ...
├── livewire/               # Livewire 组件模板
│   ├── components/         # Livewire 子组件
│   ├── manager/            # 管理后台页面
│   ├── payment/            # 支付页面
│   ├── users/              # 用户中心页面
│   └── ...
├── LICENSE                  # AGPL-3.0 许可证文件
├── README.md               # 本文件
└── test-templates.sh       # 模板测试脚本

🎯 用途

1. 快速开发

  • 开发者可以直接使用这些模板作为起点
  • 所有模板都遵循 Laravel Blade 语法规范
  • 使用 Tailwind CSS 进行样式设计

2. 定制开发

  • 可以根据业务需求修改模板
  • 支持多语言和国际化
  • 响应式设计,适配各种设备

3. 贡献模板

  • 开发者可以贡献自己的模板设计
  • 通过 Pull Request 提交改进
  • 分享最佳实践和设计模式

🚀 使用方法

安装到项目

  1. 直接复制

    cp -r templates/* resources/views/
    
  2. 使用 Git 子模块

    git submodule add <repository-url> templates
    
  3. 使用 Composer
    如果配置了 Composer 仓库,可以通过 Composer 安装

模板结构说明

布局模板 (components/layouts/)

  • app.blade.php - 前端主布局
  • manager.blade.php - 管理后台布局
  • seo.blade.php - SEO 元数据组件

Livewire 组件模板 (livewire/)

  • 所有 Livewire 组件的视图文件
  • 遵循 Livewire 命名规范
  • 支持组件间的数据传递

组件模板 (components/)

  • widgets/ - 可复用的小部件
  • manager/ - 管理后台专用组件
  • users/ - 用户中心专用组件

🎨 设计规范

样式框架

  • CSS 框架: Tailwind CSS 4.x
  • JavaScript: Alpine.js
  • 响应式: 移动优先设计

命名规范

  • 文件名使用 kebab-case(如:product-detail.blade.php
  • 组件类名使用 PascalCase(如:ProductDetail
  • 变量名使用 camelCase

多语言支持

所有文本内容使用 Laravel 的 __() 函数进行国际化:

{{ __('index.title') }}

📝 贡献指南

提交模板

  1. Fork 本仓库
  2. 创建功能分支 (git checkout -b feature/amazing-template)
  3. 提交更改 (git commit -m 'Add amazing template')
  4. 推送到分支 (git push origin feature/amazing-template)
  5. 创建 Pull Request

代码规范

  • 遵循 PSR-12 编码规范
  • 使用有意义的变量名
  • 添加必要的注释
  • 确保响应式设计

测试

  • 在不同浏览器中测试
  • 检查移动端适配
  • 验证多语言显示
  • 运行单元测试验证模板正确性(见下方测试部分)

🧪 测试

运行模板测试

项目已包含完整的模板测试套件,可以在开发中或上线前运行测试来验证模板是否正确。

运行所有测试

# 运行所有测试(包括模板测试)
php artisan test# 或使用 PHPUnit
./vendor/bin/phpunit

运行特定测试套件

# 运行功能测试(包含所有模板测试)
php artisan test --testsuite=Feature# 运行单元测试
php artisan test --testsuite=Unit

运行特定模板测试

# 测试首页模板
php artisan test tests/Feature/Livewire/IndexPageTest.php# 测试产品相关模板
php artisan test tests/Feature/Livewire/ProductTest.php
php artisan test tests/Feature/Livewire/ProductDetailTest.php# 测试购物车模板
php artisan test tests/Feature/Livewire/CartTest.php# 测试管理后台模板
php artisan test tests/Feature/Livewire/Manager/# 测试用户中心模板
php artisan test tests/Feature/Livewire/Users/

使用测试脚本(推荐)

为了方便运行测试,项目提供了一个交互式测试脚本:

# 运行测试脚本
./templates/test-templates.sh

脚本提供以下选项:

  • 运行所有模板测试
  • 运行前端页面模板测试
  • 运行管理后台模板测试
  • 运行用户中心模板测试
  • 运行组件模板测试
  • 运行特定测试文件
  • 运行所有测试(包括非模板测试)

测试覆盖范围

测试套件覆盖了以下模板:

  • 前端页面模板

    • 首页 (IndexPageTest)
    • 产品列表 (ProductTest)
    • 产品详情 (ProductDetailTest)
    • 购物车 (CartTest)
    • 结算页面 (CheckoutTest)
    • 文章列表 (ArticleListTest)
    • 文章详情 (ArticleDetailTest)
    • 搜索页面 (SearchTest)
  • 管理后台模板

    • 仪表盘 (Manager/DashboardTest)
    • 产品管理 (Manager/ProductsTest)
    • 订单管理 (Manager/OrdersTest)
    • 分类管理 (Manager/CategoriesTest)
    • 用户管理 (Manager/UsersTest)
    • 以及其他所有管理后台页面
  • 用户中心模板

    • 订单列表 (Users/OrdersTest)
    • 个人资料 (Users/ProfileTest)
    • 地址管理 (Users/AddressesTest)
    • 登录/注册 (Users/LoginTest, Users/RegisterTest)
  • 组件模板

    • 购物车下拉菜单 (Components/CartDropdownTest)
    • 产品评论 (Components/ProductReviewsTest)
    • 推荐产品 (Components/RecommendProductsTest)
    • 以及其他所有组件

测试验证内容

每个模板测试会验证:

  • ✅ 模板能否正确渲染(assertSuccessful()
  • ✅ 数据是否正确显示(assertSee()
  • ✅ 组件交互是否正常
  • ✅ 权限控制是否正确
  • ✅ 表单验证是否有效

开发流程建议

  1. 开发前: 运行测试确保基础环境正常

    php artisan test
    
  2. 开发中: 修改模板后运行相关测试

    php artisan test tests/Feature/Livewire/ProductTest.php
    
  3. 提交前: 运行完整测试套件

    php artisan test
    
  4. 上线前: 确保所有测试通过

    php artisan test --stop-on-failure
    

测试配置

测试使用 SQLite 内存数据库,配置在 phpunit.xml 中:

  • 环境:APP_ENV=testing
  • 数据库:SQLite 内存数据库
  • 缓存:数组驱动
  • 队列:同步驱动

编写新模板测试

如果添加了新模板,建议创建对应的测试:

<?phpnamespace Tests\Feature\Livewire;use Tests\Feature\LivewireTestCase;class YourTemplateTest extends LivewireTestCase
{public function test_your_template_can_be_rendered(){$component = $this->livewire(\App\Livewire\YourComponent::class);$component->assertSuccessful();}public function test_your_template_displays_data(){// 创建测试数据$data = $this->createYourData();$component = $this->livewire(\App\Livewire\YourComponent::class);$component->assertSuccessful();$component->assertSee($data->name);}
}

🔧 技术栈

  • Laravel: 12.x
  • Livewire: 4.x
  • Tailwind CSS: 4.x
  • Alpine.js: 3.x
  • Blade: Laravel 模板引擎
  • PHPUnit: 测试框架

📄 许可证

本模板仓库采用 GNU Affero General Public License v3.0 (AGPL-3.0) 许可证。

许可证说明

本项目采用 AGPL-3.0 许可证,这意味着:

  • 可以自由使用、修改和分发
  • 可以用于商业项目
  • ⚠️ 必须保留版权声明和许可证
  • ⚠️ 修改后的代码也必须使用 AGPL-3.0 许可证
  • ⚠️ 如果通过网络提供服务,必须公开源代码

完整许可证文本

完整的许可证文本请查看 LICENSE 文件。

许可证要求

使用本模板仓库时,您需要:

  1. 保留版权声明:在所有文件中保留原始版权声明
  2. 提供许可证副本:在项目中包含 LICENSE 文件
  3. 公开修改:如果修改了代码并通过网络提供服务,必须公开源代码
  4. 使用相同许可证:衍生作品必须使用 AGPL-3.0 许可证

更多信息

  • GNU AGPL-3.0 许可证全文
  • GNU 官方网站
  • 许可证常见问题

🤝 支持

如有问题或建议,请通过以下方式联系:

  • 提交 Issue
  • 发送邮件至: hello@teanary.com
  • 访问项目主页: https://github.com/TeanaryService/teanary_srvice

📚 相关资源

  • Laravel 文档
  • Livewire 文档
  • Tailwind CSS 文档
  • Alpine.js 文档

注意: 这些模板文件是从 resources/views/ 目录复制而来,保持与主项目同步更新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1214296.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新东方烹饪学校客户评价排名如何?口碑良好受学员认可

2026年餐饮业持续扩容,专业烹饪人才缺口超200万,职业技能培训成为填补的关键支撑。无论是教学质量、师资配置,还是就业创业保障,优质烹饪培训学校的专业能力直接决定学员的职业发展上限与创业成功率。当前市场中,…

具备资质的防爆伺服电机厂家如何选择,老牌可靠供应商有哪些

2026年工业自动化与安全生产需求持续升级,防爆伺服电机作为化工、石油、矿业等危险领域的核心动力部件,其品质稳定性、防爆资质合规性与技术适配性直接决定企业生产安全与运营效率。当前市场中,防爆伺服电机制造厂数…

2026年起重机直销厂家排名,杭起起重以技术实力位居前列

2026年工业制造与物流仓储领域持续升级,起重机作为物料搬运的核心设备,其性能稳定性、适配性与服务响应速度直接决定企业生产效率与安全成本。无论是国标/欧标起重机的选型、定制化设备的直销采购,还是全生命周期的…

绩效激励薪酬选哪家,创锟咨询自驱式理念激发员工自驱力!

本榜单依托全维度市场调研与真实行业口碑,深度筛选出五家薪酬绩效咨询领域的标杆企业,为企业选型提供客观依据,助力精准匹配适配的服务伙伴。 TOP1 推荐:创锟咨询 推荐指数:★★★★★ | 口碑评分:自驱式薪酬绩效…

Multisim14.0安装教程:教育场景下兼容性问题深度剖析

以下是对您提供的博文内容进行 深度润色与结构优化后的技术文章 。整体风格更贴近一位资深高校电子实验室工程师/教学技术支持人员的实战经验分享,语言自然、逻辑严密、重点突出,去除了AI生成痕迹和模板化表达,强化了教育场景的真实感、问题导向性与可操作性。全文已按专业…

说说合肥城轨培训学校哪家好,合肥东辰职业学校值得深入了解

在职业教育的赛道上,选择一所靠谱的城市轨道培训学校,关乎学子未来的职业起点与发展高度。面对市场上鱼龙混杂的城轨培训资源,如何精准筛选出既懂技术、又重实战、还能打通升学就业双通道的优质院校?以下依据办学实…

零配置起步!Unsloth开箱即用的本地AI训练体验

零配置起步&#xff01;Unsloth开箱即用的本地AI训练体验 你是否也经历过这样的时刻&#xff1a;想微调一个大模型&#xff0c;却卡在环境配置上整整一天&#xff1f;CUDA版本冲突、依赖包打架、显存爆满、训练速度慢得像在煮咖啡……直到遇见Unsloth——它不只说“快”&#…

2026年电动升降机制造厂技术强且值得选的排名

在制造业与物流行业高速发展的当下,电动升降机作为高效物料搬运与高空作业的核心设备,其性能稳定性、安全合规性直接影响企业生产效率与人员安全。面对市场上众多电动升降机制造厂,如何挑选技术强、适配性高的合作伙…

TurboDiffusion实战对比:Wan2.1与Wan2.2视频生成性能全面评测

TurboDiffusion实战对比&#xff1a;Wan2.1与Wan2.2视频生成性能全面评测 1. 什么是TurboDiffusion&#xff1f;它为什么值得你花时间了解 TurboDiffusion不是又一个“概念验证”项目&#xff0c;而是真正能跑在单张消费级显卡上的视频生成加速框架。它由清华大学、生数科技和…

毕设项目分享 YOLOv8工地安全监控预警系统(源码+论文)

文章目录 0 前言1 项目运行效果2 课题背景3 设计框架3.1 技术发展3.2 安全装备检测系统设计框架3.3 关键技术实现3.4 计算协同3.5 异常处理机制 4 最后 0 前言 &#x1f525;这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#…

毕设项目分享 基于大数据分析的股票预测系统

文章目录 0 前言1 课题意义1.1 股票预测主流方法 2 什么是LSTM2.1 循环神经网络2.1 LSTM诞生 2 如何用LSTM做股票预测2.1 算法构建流程2.2 部分代码 3 实现效果3.1 数据3.2 预测结果项目运行展示开发环境数据获取 0 前言 今天学向大家介绍一个基于深度学习的毕业设计项目&…

Anthropic:始于安全,成于企业——一场关于人工智能未来的深度范式竞争

Anthropic&#xff1a;始于安全&#xff0c;成于企业——一场关于人工智能未来的深度范式竞争 1. 概览&#xff1a;在巨头阴影下崛起的AI安全灯塔 在生成式人工智能&#xff08;GenAI&#xff09;狂飙突进的浪潮中&#xff0c;当大部分目光聚焦于OpenAI与ChatGPT时&#xff0…

Anthropic公司深度研究报告:AI安全引领者的崛起与商业化突围

Anthropic公司深度研究报告&#xff1a;AI安全引领者的崛起与商业化突围报告摘要&#xff1a;Anthropic作为生成式AI领域的核心玩家&#xff0c;自2021年由前OpenAI核心团队创立以来&#xff0c;始终以“构建可靠、可解释、可操纵的AI系统”为使命&#xff0c;凭借独特的Consti…

工程建筑网页应用中,如何实现文件上传下载的三种方案?

2023年XX月XX日 &#x1f31f; | 一个菜鸟程序员的“秃头”日记 &#x1f4bb; 今日份的崩溃与突破 早上8点&#xff1a;对着镜子默念三遍——“我能搞定10G文件上传&#xff01;”&#xff08;然后发现IE8连console.log都报错…&#xff09; 上午10点&#xff1a;试图用WebU…

【实战案例】基于YOLOv26的标准化考试答题卡答案区域检测_1

1. 基于YOLOv26的标准化考试答题卡答案区域检测 1.1. 答题卡检测概述 标准化考试答题卡自动阅卷系统是现代教育评估的重要组成部分。传统的答题卡识别过程通常包括图像预处理、答题卡定位、答案区域检测以及答案识别等步骤。其中&#xff0c;答题卡答案区域的精准检测直接影响…

金融保险网页中,如何选择文件上传下载的实用方案?

政府项目大文件传输系统开发纪实 项目背景与核心诉求 作为山东某软件公司技术负责人&#xff0c;近期承接省级政府招投标平台升级项目&#xff0c;面临以下技术挑战&#xff1a; 超大文件支持&#xff1a;需稳定传输20G级招标文件&#xff08;含图纸、视频等&#xff09;文件…

WindowsActionDialog.exe文件丢失找不到 免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

小程序加密痛点破局:CE固定动态密钥+全流程自动化加解密实战指南

在小程序生态高速发展的当下&#xff0c;数据传输与本地存储的加密防护已成为开发者的必备工作&#xff0c;而动态密钥加解密作为小程序主流的安全方案&#xff0c;虽大幅提升了加密安全性&#xff0c;却也带来了开发调试繁琐、前后端联调效率低、加解密代码耦合业务、异常排查…

深度分析《可能影响未成年人身心健康的网络信息分类办法》:开启未成年人网络保护精细化治理新时代

2026年1月23日&#xff0c;国家网信办联合教育部、公安部等八部门正式发布《可能影响未成年人身心健康的网络信息分类办法》&#xff08;以下简称《办法》&#xff09;&#xff0c;并将于3月1日起施行。这一政策是《未成年人网络保护条例》落地实施后的关键细化举措&#xff0c…

泄密者的致命疏忽!打印机监控存档数据泄露应受到重视

在企业网络安全防护体系中&#xff0c;多数企业将重心放在终端电脑、服务器、网络边界等核心节点&#xff0c;却极易忽视打印机、复印机这类办公外设的安全风险。不少泄密者抱着“截图打印后删除电子档&#xff0c;便无迹可寻”的侥幸心理&#xff0c;将涉密截图通过公司打印机…