%PDF- %PDF-
Direktori : /home/lightco1/public_html/plugins/vmpayment/klarna/klarna/api/ |
Current File : /home/lightco1/public_html/plugins/vmpayment/klarna/klarna/api/klarnaconfig.php |
<?php defined ('_JEXEC') or die(); /** * KlarnaConfig * * PHP Version 5.3 * * @category Payment * @package KlarnaAPI * @author MS Dev <ms.modules@klarna.com> * @copyright 2012 Klarna AB (http://klarna.com) * @license http://opensource.org/licenses/BSD-2-Clause BSD-2 * @link http://integration.klarna.com/ */ /** * Configuration class for the Klarna instance. * * KlarnaConfig stores added fields in JSON, it also prepends.<br> * Loads/saves specified file, or default file, if {@link KlarnaConfig::$store} * is set to true.<br> * * You add settings using the ArrayAccess:<br> * $arr['field'] = $val or $arr->offsetSet('field', $val);<br> * * Available settings are:<br> * eid - Merchant ID (int) * secret - Shared secret (string) * country - Country constant or code (int|string) * language - Language constant or code (int|string) * currency - Currency constant or code (int|string) * mode - Klarna::BETA or Klarna::LIVE * ssl - Use HTTPS or HTTP. (bool) * candice - Status reporting to Klarna, to detect erroneous * integrations, etc. (bool) * pcStorage - Storage module, e.g. 'json' * pcURI - URI to where the PClasses are stored, e.g. * '/srv/shop/pclasses.json' * xmlrpcDebug - XMLRPC debugging (bool) * debug - Normal debugging (bool) * * @category Payment * @package KlarnaAPI * @author MS Dev <ms.modules@klarna.com> * @copyright 2012 Klarna AB (http://klarna.com) * @license http://opensource.org/licenses/BSD-2-Clause BSD-2 * @link http://integration.klarna.com/ */ class KlarnaConfig implements ArrayAccess { /** * An array containing all the options for this config. * * @ignore Do not show in PHPDoc. * @var array */ protected $options; /** * If set to true, saves the config. * * @var bool */ public static $store = true; /** * URI to the config file. * * @ignore Do not show in PHPDoc. * @var string */ protected $file; /** * Class constructor * * Loads specified file, or default file, * if {@link KlarnaConfig::$store} is set to true. * * @param string $file URI to config file, e.g. ./config.json */ public function __construct($file = null) { $this->options = array(); if ($file) { $this->file = $file; if (is_readable($this->file)) { $this->options = json_decode( file_get_contents( $this->file ), true ); } } } /** * Clears the config. * * @return void */ public function clear() { $this->options = array(); } /** * Class destructor * * Saves specified file, or default file, * if {@link KlarnaConfig::$store} is set to true. */ public function __destruct() { if (self::$store && $this->file) { if ((!file_exists($this->file) && is_writable(dirname($this->file))) || is_writable($this->file) ) { file_put_contents($this->file, json_encode($this->options)); } } } /** * Returns true whether the field exists. * * @param mixed $offset field * * @return bool */ public function offsetExists($offset) { return isset($this->options[$offset]); } /** * Used to get the value of a field. * * @param mixed $offset field * * @return mixed */ public function offsetGet($offset) { if (!$this->offsetExists($offset)) { return null; } return $this->options[$offset]; } /** * Used to set a value to a field. * * @param mixed $offset field * @param mixed $value value * * @return void */ public function offsetSet($offset, $value) { $this->options[$offset] = $value; } /** * Removes the specified field. * * @param mixed $offset field * * @return void */ public function offsetUnset($offset) { unset($this->options[$offset]); } }