Имеется следующая архитектура (PHP):
APIController - curl обертка с основными с основными методами - запросами к API. В конструктор при создании передаем api_key и api_secret (в этом же контроллере метод отвечающий за отправку запроса по curl передает эти данные через заголовки):
public function __construct($apikey, $secret)
{
$this->apikey = $apikey;
$this->secret = $secret;
}
UserController - логика с использованием запросов с помощью первого контроллера. Примерно так:
class UserController
{
public $api;
private $apiKey;
private $apiSecret;
public function __construct()
{
$this->apiKey = 'xxx';
$this->apiSecret = 'xxx';
$this->api = new APIController ($this->apiKey, $this->apiSecret);
}
// остальная логика работы
Далее в процессе возникла необходимость работы с несколькими API аккаунтами на которых необходимо выполнять разную логику. Типичная картина наследования. Было решено сделать так:
APIController - curl обертка + запросы
BaseСontroller - вынести сюда общую для всех последующих контроллеров логику и наследовать от него все последующие контроллеры
UserAPISomeControler и последующие наследовать от BaseСontroller
При такой схеме в каждом UserAPISomeControler нам необходимо выполнять конструктор как в примере UserController выше для авторизации. Насколько оптимален такой подход и можно ли сделать более элегантнее?
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости