Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Agents
hnher/scaffold
claude-code
cursor
inertia
react-native
uni-app
routing
controllers
validation
design-patterns

-界面路由: 所有页面必须采用 Expo Router 进行处理。

Install
php artisan boost:add-skill hnher/scaffold

Save this content to: AGENTS.md

## 技术架构

- **总体架构**: 主要使用 Laravel、React Native、Uni App作为基础框架。
- **业务后端**: 总体基于 Laravel 13 开发。
- **Web前端**: 基于 Laravel、React、Inertia.js、shadcn/ui 编写网页和移动端。
- **App前端**: 基于 React Native 作为基础架构,使用 NativeWind 和 Tailwindcss 处理界面样式。
- **小程序端**: 基于 Uni App 作为基础框架,使用 Weapp TailwindCSS 处理界面样式。

## 编码规范

### 总体要求

- **单一原则**: 不允许编写重复的代码,编码必须考虑封装和复用。
- **设计模式**: 灵活使用工厂模式、策略模式等相关设计模式封装统一模块的代码。
- **长期主义**: 在目标和约束明确的前提下,选择全生命周期综合成本最低的方案,而不是只追求当前实施成本最低。
- **命名规范**: 必须采用语义化命名函数和类。
- **文档注释**: 文档必须清晰,可使用注解,明确参数,明确异常,明确返回值。
- **文件规范**: 必须根据业务划分文件夹。

### 业务后端

#### 路由规范
- **请求类型**: 必须使用 GET、POST 声明路由。
- **路由定义**: 路由必须根据模块划分并准寻语义化。
- **界面路由**: 界面路由尽可能避免使用问号后处理传参。
- **接口路由**: 接口路由不允许使用路径传参,如:user/detail/123。

#### 控制器
- **业务划分**: 控制器必须根据业务划分,目前已分为:Api、Web。
- **参数接收**: 必须使用 Request 的 input 方法接收参数。
- **数据验证**: 必须使用 Request 验证请求参数合法性,验证器需根据业务进行文件划分。
- **业务代码**: 不允许在控制器中编写逻辑代码,仅允许调用逻辑类函数。
- **数据返回**: Web 端将数据传递给 Inertia,Api 端将数据直接返回,禁止使用 Resource 进行二次处理。

#### 逻辑代码
- **函数处理**: 所有函数必须明确参数类型,避免使用一个数组传递所有参数。
- **数据返回**: 仅允许返回类型为:Array、Model、Collection、Paginate。
- **异常抛出**: 明确的自定义异常应当优先抛出。
- **日志记录**: 日志需准确分级,重要操作必须记录日志。
- **权限验证**: 数据权限验证可使用数据模型中所有权的定义。

#### 数据操作
- **数据迁移**: 所有数据库声明必须通过迁移文件进行明确,每个文件仅处理一个数据表,禁止随意修改数据迁移文件,必要时要求人工修改。
- **数据填充**: 所有数据填充必须使用填充文件处理,且不允许一个文件涉及多个业务。
- **事务处理**: 不允许使用数据库事务,除非明确要求。
- **数据模型**: 数据模型必须明确类文档注释。
- **数据权限**: 业务所有权需在模型中定义验证函数校验数据所有权。

#### 异常处理
- **异常定义**: 每个异常必须使用单独异常类,且根据不同模块进行文件划分。
- **异常代码**: 每个异常必须有独立的异常代码,不允许重复。
- **异常处理**: 使用 render 上报、记录、处理异常。
- **异常捕获**: 不允许使用 try catch 捕获异常。

#### 业务测试
- **单元测试**: 必须编写单元测试,且单元测试类必须根据业务进行划分。
- **运行测试**: 每次修改代码后必须运行测试,并根据测试结果进行修正。

### 前端编码

#### 总体要求

- **样式处理**: 样式采用 TailwindCSS 泛式编写,不允许单独编写样式。
- **界面组件**: 遵循组件化原则,可复用代码必须封装组件。
- **网络请求**: 必须使用统一的网络处理类。
- **动画过渡**: 再用户需等待的操作中必须使用动画过渡进行处理。
- **日志打印**: 保持必要的日志打印,但生产环境不允许打印。
- **浅色深色**: 所有界面必须适配深色和浅色模式,并自动跟随系统切换。
- **界面风格**: 保持界面、模态框、Toast等组件风格统一。
- **界面导航**: 除非明确指定否则需使用默认导航样式。
- **测试验收**: 除非明确指定否则无需使用浏览器、模拟器进行测试验收。

#### 各端区分
- **Web端**: Web 端代码在 Console 中处理。
- **小程序端**: 小程序端代码在 Applet 中处理,在 Applet 无需兼容H5、App。
- **App端**: App 端代码在 App 文件夹中处理。

#### App端
-**界面路由**: 所有页面必须采用 Expo Router 进行处理。

技术架构

  • 总体架构: 主要使用 Laravel、React Native、Uni App作为基础框架。
  • 业务后端: 总体基于 Laravel 13 开发。
  • Web前端: 基于 Laravel、React、Inertia.js、shadcn/ui 编写网页和移动端。
  • App前端: 基于 React Native 作为基础架构,使用 NativeWind 和 Tailwindcss 处理界面样式。
  • 小程序端: 基于 Uni App 作为基础框架,使用 Weapp TailwindCSS 处理界面样式。

编码规范

总体要求

  • 单一原则: 不允许编写重复的代码,编码必须考虑封装和复用。
  • 设计模式: 灵活使用工厂模式、策略模式等相关设计模式封装统一模块的代码。
  • 长期主义: 在目标和约束明确的前提下,选择全生命周期综合成本最低的方案,而不是只追求当前实施成本最低。
  • 命名规范: 必须采用语义化命名函数和类。
  • 文档注释: 文档必须清晰,可使用注解,明确参数,明确异常,明确返回值。
  • 文件规范: 必须根据业务划分文件夹。

业务后端

路由规范

  • 请求类型: 必须使用 GET、POST 声明路由。
  • 路由定义: 路由必须根据模块划分并准寻语义化。
  • 界面路由: 界面路由尽可能避免使用问号后处理传参。
  • 接口路由: 接口路由不允许使用路径传参,如:user/detail/123。

控制器

  • 业务划分: 控制器必须根据业务划分,目前已分为:Api、Web。
  • 参数接收: 必须使用 Request 的 input 方法接收参数。
  • 数据验证: 必须使用 Request 验证请求参数合法性,验证器需根据业务进行文件划分。
  • 业务代码: 不允许在控制器中编写逻辑代码,仅允许调用逻辑类函数。
  • 数据返回: Web 端将数据传递给 Inertia,Api 端将数据直接返回,禁止使用 Resource 进行二次处理。

逻辑代码

  • 函数处理: 所有函数必须明确参数类型,避免使用一个数组传递所有参数。
  • 数据返回: 仅允许返回类型为:Array、Model、Collection、Paginate。
  • 异常抛出: 明确的自定义异常应当优先抛出。
  • 日志记录: 日志需准确分级,重要操作必须记录日志。
  • 权限验证: 数据权限验证可使用数据模型中所有权的定义。

数据操作

  • 数据迁移: 所有数据库声明必须通过迁移文件进行明确,每个文件仅处理一个数据表,禁止随意修改数据迁移文件,必要时要求人工修改。
  • 数据填充: 所有数据填充必须使用填充文件处理,且不允许一个文件涉及多个业务。
  • 事务处理: 不允许使用数据库事务,除非明确要求。
  • 数据模型: 数据模型必须明确类文档注释。
  • 数据权限: 业务所有权需在模型中定义验证函数校验数据所有权。

异常处理

  • 异常定义: 每个异常必须使用单独异常类,且根据不同模块进行文件划分。
  • 异常代码: 每个异常必须有独立的异常代码,不允许重复。
  • 异常处理: 使用 render 上报、记录、处理异常。
  • 异常捕获: 不允许使用 try catch 捕获异常。

业务测试

  • 单元测试: 必须编写单元测试,且单元测试类必须根据业务进行划分。
  • 运行测试: 每次修改代码后必须运行测试,并根据测试结果进行修正。

前端编码

总体要求

  • 样式处理: 样式采用 TailwindCSS 泛式编写,不允许单独编写样式。
  • 界面组件: 遵循组件化原则,可复用代码必须封装组件。
  • 网络请求: 必须使用统一的网络处理类。
  • 动画过渡: 再用户需等待的操作中必须使用动画过渡进行处理。
  • 日志打印: 保持必要的日志打印,但生产环境不允许打印。
  • 浅色深色: 所有界面必须适配深色和浅色模式,并自动跟随系统切换。
  • 界面风格: 保持界面、模态框、Toast等组件风格统一。
  • 界面导航: 除非明确指定否则需使用默认导航样式。
  • 测试验收: 除非明确指定否则无需使用浏览器、模拟器进行测试验收。

各端区分

  • Web端: Web 端代码在 Console 中处理。
  • 小程序端: 小程序端代码在 Applet 中处理,在 Applet 无需兼容H5、App。
  • App端: App 端代码在 App 文件夹中处理。

App端

-界面路由: 所有页面必须采用 Expo Router 进行处理。

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
cgv/localized-resource