Automattic / Automattic/VIP-Coding-Standards

WordPress.WP.AlternativeFunctions.file_system_operations error messages cannot be fixed anymore

未关闭
#823 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
PHP
星标
261
派生
44
平均合并
19 分钟
30 天内合并 PR
1

描述

## Bug Description

`WordPress.WP.AlternativeFunctions.file_system_operations` error messages are overwritten in the ruleset, e.g.

```

File system operations only work on the `/tmp/` and `wp-content/uploads/` directories. To avoid unexpected results, please use helper functions like `get_temp_dir()` or `wp_get_upload_dir()` to get the proper directory path when using functions such as %s(). For more details, please see: https://docs.wpvip.com/technical-references/vip-go-files-system/local-file-operations/

```

However since WPCS 3.0.0 this error can only be fixed by using `WP_Filesystem`. Neither `get_temp_dir()` or `wp_get_upload_dir()` will make the error go away and it's unclear why (unless you debug and find the original error message where it says `WP_Filesystem`)

## Minimal Code Snippet

```php
$f = fopen( get_temp_dir() . '/abc.log' );
```

## Error Code

`WordPress.WP.AlternativeFunctions.file_system_operations_fopen`

## Environment

| Question | Answer
| ------------------------ | -------
| PHP version | 8.3
| VIPCS version | 3.0.0
| WordPressCS version | 3.1.0

## Additional Context (optional)

With `WP_Filesystem`, I think it's unnecessary to overwrite those errors in the first place and these overwrites can all be removed from ruleset.xml

Possibly, errors like `WordPressVIPMinimum.Functions.RestrictedFunctions.file_ops_fputcsv` should be changed to a also only allow `WP_Filesystem` ?

## Tested Against `main` branch?

- [ ] I have verified the issue still exists in the `main` branch of VIPCS.
- [ ] I have verified the issue still exists in the `develop` branch of VIPCS.

贡献指南

打开贡献指南

调研方向

从 ruleset.xml 中的 WordPress.WP.AlternativeFunctions.file_system_operations 规则开始,将已配置的消息与 VIPCS 3.0.0 和 WordPressCS 3.1.0 中的行为进行比较。使用提供的 fopen() 代码片段重现该问题,并验证由此产生的指导。完成的标准是:报告的错误不再包含误导性的修复建议,并且所有相关的文件操作规则都具有明确且一致的行为。

由索引模型根据 Issue 内容生成。

评估

技术栈
php, wordpress
领域
tooling
Issue 类型
缺陷
难度
3/5
预计耗时
1-2 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
48/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。