![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mcoil.corals.io/vendor/paypal/rest-api-sdk-php/lib/PayPal/Core/ |
<?php namespace PayPal\Core; /** * Class PayPalConfigManager * * PayPalConfigManager loads the SDK configuration file and * hands out appropriate config params to other classes * * @package PayPal\Core */ class PayPalConfigManager { /** * Configuration Options * * @var array */ private $configs = array( ); /** * Singleton Object * * @var $this */ private static $instance; /** * Private Constructor */ private function __construct() { if (defined('PP_CONFIG_PATH')) { $configFile = constant('PP_CONFIG_PATH') . '/sdk_config.ini'; } else { $configFile = implode(DIRECTORY_SEPARATOR, array(dirname(__FILE__), "..", "config", "sdk_config.ini")); } if (file_exists($configFile)) { $this->addConfigFromIni($configFile); } } /** * Returns the singleton object * * @return $this */ public static function getInstance() { if (!isset(self::$instance)) { self::$instance = new self(); } return self::$instance; } /** * Add Configuration from configuration.ini files * * @param string $fileName * @return $this */ public function addConfigFromIni($fileName) { if ($configs = parse_ini_file($fileName)) { $this->addConfigs($configs); } return $this; } /** * If a configuration exists in both arrays, * then the element from the first array will be used and * the matching key's element from the second array will be ignored. * * @param array $configs * @return $this */ public function addConfigs($configs = array()) { $this->configs = $configs + $this->configs; return $this; } /** * Simple getter for configuration params * If an exact match for key is not found, * does a "contains" search on the key * * @param string $searchKey * @return array */ public function get($searchKey) { if (array_key_exists($searchKey, $this->configs)) { return $this->configs[$searchKey]; } else { $arr = array(); foreach ($this->configs as $k => $v) { if (strstr($k, $searchKey)) { $arr[$k] = $v; } } return $arr; } } /** * Utility method for handling account configuration * return config key corresponding to the API userId passed in * * If $userId is null, returns config keys corresponding to * all configured accounts * * @param string|null $userId * @return array|string */ public function getIniPrefix($userId = null) { if ($userId == null) { $arr = array(); foreach ($this->configs as $key => $value) { $pos = strpos($key, '.'); if (strstr($key, "acct")) { $arr[] = substr($key, 0, $pos); } } return array_unique($arr); } else { $iniPrefix = array_search($userId, $this->configs); $pos = strpos($iniPrefix, '.'); $acct = substr($iniPrefix, 0, $pos); return $acct; } } /** * returns the config file hashmap */ public function getConfigHashmap() { return $this->configs; } /** * Disabling __clone call */ public function __clone() { trigger_error('Clone is not allowed.', E_USER_ERROR); } }