Структура класса PHP, использовать статические методы или нет? - PullRequest
1 голос
/ 20 июля 2011

Я пишу собственный класс управления доменом, который использует различные внешние сервисы, своего рода класс-оболочку, чтобы заставить их работать вместе.

Куда бы я положил логику подключения в этом классе?Мне не понадобятся все сервисы сразу, поэтому не имеет смысла помещать их в конструктор, я думаю, что некоторые из методов будут лучше, чем статические, так как они на самом деле не связаны друг с другом.единственное, что у них общего, - это базовые соединения.

У меня будут методы, аналогичные следующим:

  • registerDomain () (contacts Nominet)
  • updateDomain (),
  • domainAvailable (), (контакты Nominet)
  • registerDNS (), (контакты Amazon и Nominet)
  • updateDNS (),

Должен ли я проверять свойство соединения в каждом вызове (и создавать его, если он не существует) или подключаться в конструкторе классов?

1 Ответ

2 голосов
/ 20 июля 2011

Я думаю, что имеет смысл создать что-то вроде этого:

class DomainManager {
    public function __construct($domainData) {}
    public function registerDomain() {
        //connect
        //do stuff
    }
    public function updateDomain() {
        //connect
        //do stuff
    }
    public function isAvailable() {
        //connect
        //do stuff
    }
    public function registerDns() {
        //connect
        //do stuff
    }
    public function updateDns() {
        //connect
        //do stuff
    }
    private function connectToNominet() {}
    private function connectToAmazon() {}
}

Тогда у вас есть хороший объект, который инкапсулирует логику, доступную для домена:

$domain1 = new DomainManager('example.com', $user, $foo);
$domain->registerDomain();
$domain->registerDns();
...