Platformsh\Cli\Api::getClient PHP Method

getClient() public method

Get the API client object.
public getClient ( boolean $autoLogin = true ) : Platformsh\Client\PlatformClient
$autoLogin boolean Whether to log in, if the client is not already authenticated (default: true).
return Platformsh\Client\PlatformClient
    public function getClient($autoLogin = true)
    {
        if (!isset(self::$client)) {
            $connectorOptions = [];
            $connectorOptions['accounts'] = $this->config->get('api.accounts_api_url');
            $connectorOptions['verify'] = !$this->config->get('api.skip_ssl');
            $connectorOptions['debug'] = $this->config->get('api.debug');
            $connectorOptions['client_id'] = $this->config->get('api.oauth2_client_id');
            $connectorOptions['user_agent'] = $this->getUserAgent();
            $connectorOptions['api_token'] = self::$apiToken;
            $connectorOptions['api_token_type'] = self::$apiTokenType;
            // Proxy support with the http_proxy or https_proxy environment
            // variables.
            if (PHP_SAPI === 'cli') {
                $proxies = [];
                foreach (['https', 'http'] as $scheme) {
                    $proxies[$scheme] = str_replace('http://', 'tcp://', getenv($scheme . '_proxy'));
                }
                $proxies = array_filter($proxies);
                if (count($proxies)) {
                    $connectorOptions['proxy'] = count($proxies) == 1 ? reset($proxies) : $proxies;
                }
            }
            $connector = new Connector($connectorOptions);
            // Set up a persistent session to store OAuth2 tokens. By default,
            // this will be stored in a JSON file:
            // $HOME/.platformsh/.session/sess-cli-default/sess-cli-default.json
            $session = $connector->getSession();
            $session->setId('cli-' . self::$sessionId);
            $session->setStorage(new File($this->config->getUserConfigDir() . '/.session'));
            self::$client = new PlatformClient($connector);
            if (isset($this->dispatcher) && $autoLogin && !$connector->isLoggedIn()) {
                $this->dispatcher->dispatch('login_required');
            }
        }
        return self::$client;
    }