class ApiClient
{
private static $client = null;
private static $url;
private static $apiKey;
private function __construct()
{
}
/**
* Получить экземпляр для работы с АПИ
*/
public static function getInstance()
{
self::$url = \Yii::$app->params['api_url'];
self::$apiKey = \Yii::$app->params['api_key'];
if ( empty(self::$client) ) {
self::$client = new BaseApiClient(self::$url, self::$apiKey);
}
return self::$client;
}
}
$client = Api::getInstance();
$client = \Yii::$app->getApi();
<?php
$params = [];
if ( YII_ENV_DEV || YII_ENV_TEST ) {
$params['api_key'] = ..........
$params['api_url'] = ..........
} else {
$params['api_key'] =...............
$params['api_url'] = ...............
}
return $params;
class BaseApiClient extend yii\base\Component {
public $url;
public $key
}
если base класс не нужен лучше убрать если у вас нету фабрики клиентов, ну если еще таковой функционал нужен, то нужно будет сделать интерфейс.class ApiClient extend BaseApiClient {
}
в секцию массива добавить components=> [
'api'=> [
'class' => 'namespace\вашего\клаccа',
'url' => '',
'key' => '',
]
]