Vue
- 复用两处及以上的稳定业务结构才抽取组件,避免无意义的包装组件。
- 组件文件顶部说明用途;存在 props、事件或暴露方法时同时说明接口。
- 注释使用中文,重点说明业务原因、边界和跨端差异,不重复解释直观代码。
- 子元素 class 使用父容器作用域内的短语义 class,例如 `balance`、`detail`、`label`、`value`。
- 禁止使用 BEM 双下划线或双连字符命名,例如 `wallet-hero__balance`、`detail--active`;状态类统一使用 `is-*`,例如 `is-active`、`is-disabled`。
- SCSS 必须按模板父子结构嵌套子类,不得使用 `&` 拼接元素类名,也不得在父级之外重复完整路径。标准写法:
```scss
.wallet-hero {
.balance {
// 余额区域样式。
}
.detail {
.label {
// 明细标签样式。
}
.value {
// 明细数值样式。
}
}
}
```
PHP
## 代码注释
- {}内只有一行的,省略大括号(如果可以省略),在一行
- 数组返回值以及数组配置参数,要用 `# 单行注释` 说明字段含义
```php
if (!is_dir($target_dir)) return "创建目录失败:$target_dir";
return [
# 压缩包内有多少文件
'file' => 0,
# $source_path 中有多少目录
'dir' => 0,
# 既不是文件,也不是目录的路径
'invalid' => [],
];
```
- 中文注释,对于已有的英文注释,改成中文注释
- 添加的代码必须要有注释。对于复杂抽象的,用多行注释详细说明,方便下一人接手和维护。
- config 内的配置,每个字段必须有单行双斜杠注释,说明字段含义,以及可选值
- 类的方法和单独的函数,都要有多行注释说明函数的用途以及参数和返回值
- 类里的属性,用单行注释 `# 注释xxx` 说明属性含义
注释示例如下:
```php
// 单行注释
/**
* 多行注释,渲染项目申请分页列表。常规注释。不需要有空行,无论什么时候@param和@return是一个整体,他俩之间无需空行
* @param Request $request 当前请求。
* @return Response 申请列表模板。
*/
/**
* 安全下载远程文件,返回类似 $_FILES 的数组。
* 该函数只负责:
* 1. 使用 WordPress 原生接口下载远程文件;
* 2. 检测文件真实 MIME 类型;
* 3. 根据允许上传的 MIME 类型确定扩展名;
* 4. 组装成 wu_upload_file() 可以继续处理的文件数组。
* 函数说明有多行,此时下方的@param就要有空行
*
* @param string $url 远程文件 URL。
* @return array{
* name: string,
* type: string,
* tmp_name: string,
* error: int|string,
* size: int,
* ext: string
* }
*
* @see unlink 删除临时文件
* @see download_url wp自带安全下载文件
* @see media_sideload_image wp专门处理图片,而且远程 URL 通常需要包含可识别的图片扩展名
* @see media_handle_upload 处理 $_FILES,写入媒体库并生成附件元数据。
* @see media_handle_sideload 处理远程普通文件,但需要自己准备类似 $_FILES 的数组。
*/
/** 必须用多行注释,但只有一行的,这样写:@use HasFactory<SettingFactory> */
```