Добрый день. В рамках проекта на Laravel идет использование библиотеки для работы с API. На текущий момент я использую "прослойку": сервис из двух методов: _construct и getInstance.
class ApiClient
{
protected $api;
public function __construct() {
$this->api = new VeryUsefulApi([
'1' => env('1', false),
'2' => env('2', false),
'3' => env('3', false),
'4' => env('4', false),
]);
}
public function getInstance() {
return $this->api;
}
}
В первом автоматически по параметрам из ENV файла происходит инициализация библиотеки и запись в protected поле класса, во втором - просто выдача наружу уже инициализированного объекта. Этот сервис зарегистрирован как singletone. В других сервисах, где необходимо использование этой библиотеки, я использую внедрение зависимостей в конструктор и делаю что-то типа
public function __construct(ApiClient $api) {
$this->api= $api;
}
и дальше использую уже по месту назначения.
Вопрос: как вы решаете такую задачу и/или как ее нужно решать правильно?