【发布时间】:2016-03-25 09:50:49
【问题描述】:
我目前关注 PSR-2 和 PSR-4。在尝试命名几个类时,我遇到了一个小难题。这是一个例子。
我有一个基本的 REST 客户端,\Vendor\RestClient\AbstractClient。我有这个抽象客户端的两个实现:
\Vendor\GoogleClient\GoogleClient\Vendor\GithubClient\GithubClient
由于命名空间已经指定了域,客户端类的命名是否多余?我应该改为命名我的课程吗:
\Vendor\GoogleClient\Client\Vendor\GithubClient\Client
这意味着客户端代码将始终使用以下内容:
use Vendor\GoogleClient\Client;
$client = new Client();
这比:
use Vendor\GoogleClient\GoogleClient;
$client = new GoogleClient();
但第一个选项允许我们通过仅更改 use 语句轻松地换出实现。
PSR4 指定Interfaces 和AbstractClasses 应分别以Interface 为后缀和以Abstract 为前缀,但它没有说明特定于域的前缀/后缀。有什么意见/建议?
【问题讨论】:
-
如果 PSR 没有说明这一点,那大概是由个人风格决定的。
标签: php naming-conventions naming psr-4 psr-2