woocommerce/.ai/skills/woocommerce-backend-dev/zh-cn/file-entities.md
2026-04-15 10:18:01 +08:00

73 lines
No EOL
1.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 创建基于文件的代码实体
## 基本原则:禁止独立函数
**切勿添加新的独立函数** - 它们在单元测试中难以模拟。始终使用类方法。
如果用户明确要求添加新函数,请拒绝并引导他们查看[相关文档](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/includes/README.md)。
例外:用于本地测试且不会被提交的临时/一次性函数。
## 添加新类
### 默认位置:`src/Internal/`
新类默认放在 `src/Internal/` 目录中。
示例:`src/Internal/Traits/Foobar.php``src/Internal/Utils/DataParser.php`
### 公开类:`src/`
只有当提示中提到"公开"类时,文件才应放在 `src` 目录中,但不在 `Internal` 子目录内。
**示例:**
- "添加一个公开的 Traits/Foobar 类" → `src/Traits/Foobar.php`
### 处理 `includes/` 目录
仅修改现有代码。只有当使用 `src/` 目录会损害可读性或可维护性时,才在此处添加新类/方法。
## 命名规范
### 类名
- **必须使用 PascalCase**
- **必须遵循 [PSR-4 标准](https://www.php-fig.org/psr/psr-4/)**
- 必要时调整用户提供的名称
- `src` 目录的根命名空间是 `Automattic\WooCommerce`
**示例:**
```php
// 用户说:"创建一个数据解析器类"
// 你创建DataParser.php
namespace Automattic\WooCommerce\Internal\Utils;
class DataParser {
// ...
}
```
## 命名空间和导入规范
引用命名空间类时:
1. 始终在文件开头添加包含完全限定类名的 `use` 语句
2. 在代码中始终引用短类名
**正确做法:**
```php
use Automattic\WooCommerce\Internal\Utils\Foobar;
// 在后续代码中:
$instance = $container->get( Foobar::class );
```
**避免做法:**
```php
// 没有 use 语句,使用完全限定名:
$instance = $container->get( \Automattic\WooCommerce\Internal\Utils\Foobar::class );
```