小丁到家最终版

Yin Bin 2af33e7af0 fix:修复部署目标错误 4 months ago
.vscode 09ae829fe2 fix:去掉自动启动task 4 months ago
app e83a7001b4 feat:用户端-微信-获取JSAPI配置 4 months ago
bootstrap 65b8188a48 feat:技师端-添加判断技师身份中间件 4 months ago
config 4ba3373f97 feat:增加上传照片以及修复更新用户头像校验规则 4 months ago
database 7477a052a1 feat:删除迁移文件;实现省市区相关接口 4 months ago
doc 34a884b1d6 doc:一期功能清单 4 months ago
lang 6f38743a07 feat: 增加scribe文档,注意检查:Providers目录下的文件有无必要修改 4 months ago
public 82f1fe6551 feat:后台first接口 4 months ago
resources a0df5b0b27 fixed:解决autho token问题 4 months ago
routes e83a7001b4 feat:用户端-微信-获取JSAPI配置 4 months ago
script 2af33e7af0 fix:修复部署目标错误 4 months ago
storage 1f69f3d3ba git(vcode-setting): 不可见字符处理 5 months ago
tests 1f69f3d3ba git(vcode-setting): 不可见字符处理 5 months ago
.DS_Store a26c4eafd6 feat:实现枚举查询统一接口 4 months ago
.editorconfig 1f69f3d3ba git(vcode-setting): 不可见字符处理 5 months ago
.env.example 3bfed791cb feat:增加s3对象存储配置 4 months ago
.gitattributes 1f69f3d3ba git(vcode-setting): 不可见字符处理 5 months ago
.gitignore e8e3538962 fix:将ide helper文件,增加忽略 4 months ago
.phpstorm.meta.php d7617cc29a fixed:临时禁用发送验证码(还为对接) 4 months ago
.zshrc 49fb96ba04 feat:添加队列 4 months ago
README.md 4ba3373f97 feat:增加上传照片以及修复更新用户头像校验规则 4 months ago
_ide_helper.php 49fb96ba04 feat:添加队列 4 months ago
_ide_helper_models.php 8bb4a07aa4 ok 4 months ago
ansible.cfg c7b0738c35 fix:优化命令行,但没有了高亮 4 months ago
artisan 1f69f3d3ba git(vcode-setting): 不可见字符处理 5 months ago
composer.json 4ba3373f97 feat:增加上传照片以及修复更新用户头像校验规则 4 months ago
composer.lock 4ba3373f97 feat:增加上传照片以及修复更新用户头像校验规则 4 months ago
fix-permissions.sh c7b0738c35 fix:优化命令行,但没有了高亮 4 months ago
index.html 5faf5873f2 fix:修复完毕,开始生成页面 4 months ago
package-lock.json a26c4eafd6 feat:实现枚举查询统一接口 4 months ago
package.json 1f69f3d3ba git(vcode-setting): 不可见字符处理 5 months ago
php.ini de58a6344a feat:修复scribe无法点击分组的bug 4 months ago
phpunit.xml 1f69f3d3ba git(vcode-setting): 不可见字符处理 5 months ago
postcss.config.js 1f69f3d3ba git(vcode-setting): 不可见字符处理 5 months ago
settings.json a26c4eafd6 feat:实现枚举查询统一接口 4 months ago
tailwind.config.js 1f69f3d3ba git(vcode-setting): 不可见字符处理 5 months ago
vite.config.js 1f69f3d3ba git(vcode-setting): 不可见字符处理 5 months ago

README.md

安装

- 1.创建.env配置
    复制项目根目录.env.example文件,将其改名或重命名为.env
- 2.修改.env配置
    DB_CONNECTION=sqlite    // 将sqlite改为mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=            // 填写数据库名称
    DB_USERNAME=root        // 数据库账号
    DB_PASSWORD=            // 数据库密码
- 3.创建.env配置填写的同名数据库
- 4.开启redis服务
- 5.执行composer命令
    ```composer install --prefer-dist```
- 6.执行迁移文件
    ```php artisan migrate```
- 7.安装owl-admin
    ```php artisan admin:install```
- 8.开启serve服务
    ```php artisan serve```

设置 linux 允许 php 以 80 端口启动

sudo setcap 'cap_net_bind_service=+ep' /www/server/php/82/bin/php

停止宝塔 nginx 自动启动

sudo systemctl disable nginx

Rules 提示词

Always respond in 中文

你是uniapp、TypeScript、Node.js、Vite、Vue3.js、uni-ui方面的专家,对这些技术的最佳实践和性能优化技术有深入的理解。
代码风格与结构
- 编写简洁、易维护且技术上准确的 TypeScript 代码,并提供相关示例。
- 使用函数式和声明式编程模式;避免使用类。
- 遵循 DRY 原则,使用迭代和模块化避免代码重复。
- 使用描述性变量名,并使用辅助动词(如 isLoading、hasError 等)。
- 系统地组织文件:每个文件只包含相关的内容,例如导出的组件、子组件、辅助函数、静态内容和类型。
命名约定:
- 使用小写字母和连字符来命名目录(例如,components/auth-wizard)。
- 优先使用命名出口来命名函数。
TypeScript 使用方法
- 使用 TypeScript 编写所有代码;优先使用接口而不是类型,因为它们具有可扩展性和合并能力。
- 避免使用枚举;使用映射来获得更好的类型安全性和灵活性。
- 使用 TypeScript 接口来编写函数组件。
语法与格式
- 使用“function”关键字来声明纯函数,以便利用提升和提高代码的可读性。
- 始终使用Vue Composition API的脚本设置风格。
- 不要使用jsx、flow等EmcaScript特性
UI 和样式
- 使用uin-ui 构建组件和样式。
- 使用 flex布局 实现响应式设计;采用移动优先的方法。

bash Always respond in 中文

您是 Laravel、PHP 及相关网络开发技术的专家。

核心原则

编写简洁、技术性的回答,并提供准确的 PHP/Laravel 示例。 优先考虑面向对象编程和清晰架构的 SOLID 原则。 遵循 PHP 和 Laravel 的最佳实践,确保一致性和可读性。 为可扩展性和可维护性设计,确保系统能够轻松成长。 倾向于迭代和模块化而不是重复,以促进代码复用。 为变量、方法和类使用一致和描述性的名称,以提高可读性。

依赖

Composer 用于依赖管理 PHP 8.2+ Laravel 11.0+ owl-admin Laravel后台管理框架

PHP 和 Laravel 标准

在适当的情况下利用 PHP 8.2+ 的特性(例如,类型属性、匹配表达式)。 遵守 PSR-12 编码标准,以保持代码风格的一致性。 始终使用严格类型:declare(strict_types=1); 利用 Laravel 的内置功能和助手,以最大化效率。 遵循 Laravel 的目录结构和文件命名约定。 实施健壮的错误处理和日志记录: 适合处理前置条件验证的优先请使用abort_if 使用 Laravel 的异常处理和日志记录功能。 在必要时创建自定义异常。 对预期的异常使用 try-catch 块。 使用 Laravel 的验证功能处理表单和请求数据。 实施中间件进行请求过滤和修改。 利用 Laravel 的 Eloquent ORM 进行数据库交互。 使用 Laravel 的查询构建器进行复杂的数据库操作。 创建和维护适当的数据库迁移和种子文件。

Laravel 最佳实践

在可能的情况下使用 Eloquent ORM 和查询构建器代替原始 SQL 查询 实施仓库和服务模式,以获得更好的代码组织和可复用性 利用 Laravel 的内置身份验证和授权功能(Sanctum) 利用 Laravel 的缓存机制(Redis)提高性能 使用任务队列处理长时间运行的任务和后台处理 使用 API 资源和版本控制构建健壮且可维护的 API 使用 Laravel 的异常处理程序和日志门面实现适当的错误处理和日志记录 利用 Laravel 的验证功能,包括表单请求,确保数据完整性 实施数据库索引并使用 Laravel 的查询优化功能提高性能 实施适当的安全措施,包括 CSRF 保护、XSS 防范和输入消毒

代码架构

命名约定:

文件夹、类和文件使用一致的命名约定。 遵循 Laravel 的约定:模型使用单数,控制器使用复数(例如,User.php,UsersController.php)。 类名使用 PascalCase,方法名使用 camelCase,数据库列使用 snake_case。

控制器设计:

控制器应该是 final 类,以防止继承。 控制器应该是只读的(即,没有属性变异)。 避免直接在控制器中注入依赖。相反,使用方法注入或服务类。

模型设计:

模型应该是 final 类,以确保数据完整性并防止继承导致意外行为。 不要自定义模型和字段,如果不确定请参照 doc/系统设计/数据库设计/物理模型/xiaoding_test.md 寻找,仍然无法确定,请告知我。

服务:

在 app 目录中创建一个 Services 文件夹。 将服务组织成特定于模型的服务和其他所需服务。 服务类应该是 final 和只读的。 使用服务处理复杂的业务逻辑,保持控制器轻薄。

路由:

保持路由的一致性和组织性。 为每个主要模型或功能区域创建单独的路由文件。 将相关路由分组在一起(例如,所有与用户相关的路由在 routes/user.php 中)。 用户端添加到routes/api.php文件中client前缀下 技师端添加到routes/api.php文件中coach前缀下 管理端添加到routes/web.php文件中,分别在admin前缀和admin-api前缀中添加

类型声明:

方法和方法总是使用显式的返回类型声明。 使用适当的 PHP 类型提示作为方法参数。 在必要时利用 PHP 8.1+ 的特性,如联合类型和可空类型。

数据类型一致性:

在整个代码库中保持数据类型声明的一致性和明确性。 使用类型提示属性、方法参数和返回类型。 利用 PHP 的严格类型早期捕获类型相关错误。

错误处理:

使用 Laravel 的异常处理和日志记录功能处理异常。 在必要时创建自定义异常。 对预期的异常使用 try-catch 块。 以优雅的方式处理异常并返回适当的响应。

关键点

遵循 Laravel 的 MVC 架构,明确分离业务逻辑、数据和表示层。 使用表单请求实现请求验证

代码生成位置约定

用户端controller代码生成到 app/Http/Controllers/Client 用户端service代码生成到 app/Services/Client 技师端controller代码生成到 app/Http/Controllers/Coach 技师端service代码生成到 app/Services/Coach 管理端controller代码生成到 app/Admin/Controllers/ 管理端service代码生成到 app/Services

枚举文件查找规则

定位并识别位于 app/Enums 目录下的所有枚举文件。

注解优化规则

  1. Controller层API文档注解优化规则: 生成scribe的API文档注解时,确保方法注释名称前添加分组名,格式为分组名-方法名。 不使用@group注解关键字,而是在方法注释中明确分组信息。 添加@description注解,详细描述API功能。 对于请求参数,使用@param注解,并提供参数类型、描述和默认值(Example)。 对于响应,使用@response注解,并提供响应类型、描述和示例数据。

  2. Service层PHPDoc注解优化规则: 为Service层的每个方法添加PHPDoc注解,包括方法功能描述、参数说明、返回值说明等。

  3. 方法体内逻辑注解优化规则: 在每个方法体内,对每行逻辑代码添加详细注解,说明该行代码的功能和目的。

  4. 注解中文字符串空格检查优化规则: 检查所有中文注解字符串,确保不包含空格,避免中文编码问题。

事务处理规则详细说明

检测增删改方法:AI应能够识别哪些方法涉及数据的增加、删除或修改。 自动添加事务逻辑:在识别到增删改方法后,AI应在方法开始处添加事务开始的代码,并在方法结束前添加事务提交的代码。同时,AI需要添加异常处理逻辑,以便在发生错误时回滚事务。 异常处理:AI应确保在事务中捕获所有可能的异常,并在异常发生时回滚事务

Sanctum规则详细说明

替换Auth::id():AI应扫描代码中所有使用 Auth::id() 的地方,并将其替换为 Auth::user()->id。 检查上下文:在替换过程中,AI需要检查上下文以确保替换不会破坏现有逻辑。 保持代码整洁:替换完成后,AI应确保代码格式保持整洁,避免引入新的错误。


## 重新解决 vscode 提示魔术方法不存在的问题

bash php artisan ide-helper:generate php artisan ide-helper:models -N php artisan ide-helper:meta


## git 提交统一配置换行符为 LF 方案

bash

设置全局换行符为 LF

git config --global core.eol lf git config --global core.autocrlf input git config --global core.safecrlf warn


## 解决命令行中总是报错 9003xdebug 调试端口连接失败问题

bash [Xdebug] zend_extension=xdebug

; 仅启用需要的功能,减少性能开销 xdebug.mode=debug

; 仅在需要时启动调试 xdebug.start_with_request=trigger

; 保持默认端口配置 xdebug.client_port=9003 xdebug.client_host=127.0.0.1

; 添加日志便于排查问题 xdebug.log=/tmp/xdebug.log


## 彻底解决 vscode 命令行不好用的问题

bash

vim ~/.zshrc

在path中增加:你的项目路径/script/bin 在path中增加:你的项目路径/script/ansible/bin

```

前后端联调

  • 修改项目的.env 文件
  • 修改宝塔的域名增加一个本地 ip
  • 关闭 wsl 的防火墙以及 windows 的防火墙
    • 前提是使用了 wsl 需要
    • ufw disable
  • 然后双击 abc.bat 即可