我目前遵循PSR-2和PSR-4规范。在尝试命名一些类时,我遇到了一个小问题。以下是一个例子。
我有一个基础REST客户端,`\Vendor\RestClient\AbstractClient`。我有两个此抽象客户端的实现:
- `\Vendor\GoogleClient\GoogleClient` - `\Vendor\GithubClient\GithubClient`
由于命名空间已经指定了域名,客户端类的命名是否多余?我应该改为这样命名我的类:
- `\Vendor\GoogleClient\Client` - `\Vendor\GithubClient\Client`
这意味着客户端代码始终会使用以下内容:
我有一个基础REST客户端,`\Vendor\RestClient\AbstractClient`。我有两个此抽象客户端的实现:
- `\Vendor\GoogleClient\GoogleClient` - `\Vendor\GithubClient\GithubClient`
由于命名空间已经指定了域名,客户端类的命名是否多余?我应该改为这样命名我的类:
- `\Vendor\GoogleClient\Client` - `\Vendor\GithubClient\Client`
这意味着客户端代码始终会使用以下内容:
use Vendor\GoogleClient\Client;
$client = new Client();
这个比“verbose”少了一些冗长:
use Vendor\GoogleClient\GoogleClient;
$client = new GoogleClient();
但是第一个选项允许我们仅通过更改使用语句来轻松交换实现。
PSR4规定Interfaces
和AbstractClasses
应该分别以Interface
和Abstract
为后缀和前缀,但它对特定于域的前缀/后缀没有任何说明。 有任何意见/建议吗?