В настоящее время я следую за PSR-2 и PSR-4. Я сталкиваюсь с небольшой дилеммой при попытке назвать несколько классов. Вот пример.Соглашение об именах классов имен пространства имен PHP
У меня есть базовый клиент REST, \Vendor\RestClient\AbstractClient
. У меня есть две реализации этого абстрактного клиента:
\Vendor\GoogleClient\GoogleClient
\Vendor\GithubClient\GithubClient
Is именование классов клиента излишним, поскольку пространство имен уже указывает домен? Должен ли я вместо того, чтобы назвать свои классы:
\Vendor\GoogleClient\Client
\Vendor\GithubClient\Client
Это будет означать код клиента всегда будет использовать что-то вроде:
use Vendor\GoogleClient\Client;
$client = new Client();
Это немного компактнее, чем:
use Vendor\GoogleClient\GoogleClient;
$client = new GoogleClient();
Но первый вариант позволяет нам легко менять реализации, только изменяя инструкцию использования.
PSR4 указывает, что Interfaces
и AbstractClasses
должны быть суффиксом Interface
и с префиксом Abstract
соответственно, но это ничего не говорит о конкретных доменных префиксов/суффиксов. Любые мнения/предложения?
Если PSR ничего не говорит об этом, это, вероятно, оставляет его в индивидуальном стиле. – Barmar