public static function AcquiaLiftAPI::getInstance in Acquia Lift Connector 7
Same name and namespace in other branches
- 7.2 includes/AcquiaLiftAPI.inc \AcquiaLiftAPI::getInstance()
Singleton factory method.
Return value
13 calls to AcquiaLiftAPI::getInstance()
- AcquiaLiftAgent::create in plugins/
agent_types/ AcquiaLiftAgent.inc - Implements PersonalizeAgentInterface::create().
- AcquiaLiftContext::create in plugins/
visitor_context/ AcquiaLiftContext.inc - Implements PersonalizeContextInterface::create().
- AcquiaLiftTest::getAcquiaLiftAPI in tests/
AcquiaLiftAPI.test - Returns a AcquiaLiftAPI instance that can be used to test methods.
- AcquiaLiftTest::testEnsureUniqueAgentName in tests/
AcquiaLiftAPI.test - AcquiaLiftTest::testGetAgents in tests/
AcquiaLiftAPI.test
File
- includes/
acquia_lift.classes.inc, line 80 - Provides an agent type for Acquia Lift
Class
- AcquiaLiftAPI
- @file Provides an agent type for Acquia Lift
Code
public static function getInstance($account_info) {
if (empty(self::$instance)) {
if (drupal_valid_test_ua()) {
self::setTestInstance();
return self::$instance;
}
foreach (array(
'api_key',
'admin_key',
'owner_code',
) as $key) {
if (!isset($account_info[$key])) {
throw new AcquiaLiftCredsException('Acquia Lift account info is not complete.');
}
}
if (!self::codeIsValid($account_info['owner_code'])) {
throw new AcquiaLiftCredsException('Acquia Lift owner code is invalid.');
}
$api_url = self::API_URL;
$needs_scheme = TRUE;
if (!empty($account_info['api_url'])) {
if (!valid_url($account_info['api_url'])) {
throw new AcquiaLiftCredsException('Acquia Lift API URL is not a valid URL.');
}
$api_url = $account_info['api_url'];
$needs_scheme = strpos($api_url, '://') === FALSE;
}
if ($needs_scheme) {
global $is_https;
// Use the same scheme for Acquia Lift as we are using here.
$url_scheme = $is_https ? 'https://' : 'http://';
$api_url = $url_scheme . $api_url;
}
if (substr($api_url, -1) === '/') {
$api_url = substr($api_url, 0, -1);
}
self::$instance = new self($account_info['api_key'], $account_info['admin_key'], $account_info['owner_code'], $api_url);
}
return self::$instance;
}