forked from LiveCarta/PayPal-PHP-SDK
Added Custom Cache Directory Option
This commit is contained in:
12
README.md
12
README.md
@@ -144,16 +144,22 @@ Please visit our [sample sdk_config.ini](https://github.com/paypal/PayPal-PHP-SD
|
||||
;Caching Configuration
|
||||
[cache]
|
||||
; If Cache is enabled, it stores the access token retrieved from ClientId and Secret from the
|
||||
; server into a file provided in constant $CACHE_PATH in PayPal/Cache/AuthorizationCache.
|
||||
; server into a file provided by the cache.FileName option or by using
|
||||
; the constant $CACHE_PATH value in PayPal/Cache/AuthorizationCache if the option is omitted/empty.
|
||||
; If the value is set to 'true', it would try to create a file and store the information.
|
||||
; For any other value, it would disable it
|
||||
; Please note, this is a very good performance improvement, and we would encourage you to
|
||||
; set this up properly to reduce the number of calls, to almost 50% on normal use cases
|
||||
; PLEASE NOTE: You may need to provide proper write permissions to /var directory under PayPal-PHP-SDK on
|
||||
; your hosting server
|
||||
; your hosting server or whichever custom directory you choose
|
||||
cache.enabled=true
|
||||
; When using a relative path, the cache file is created
|
||||
; relative to the .php file that is the entry point
|
||||
; for this request. You can also provide an absolute
|
||||
; path here
|
||||
cache.FileName=../auth.cache
|
||||
```
|
||||
##### PLEASE NOTE: You may need to provide proper write permissions to /var directory under PayPal-PHP-SDK on your hosting server
|
||||
##### PLEASE NOTE: You may need to provide proper write permissions to /var directory under PayPal-PHP-SDK (or your custom directory) on your hosting server
|
||||
|
||||
### API Model Constructor
|
||||
|
||||
|
||||
@@ -23,9 +23,10 @@ abstract class AuthorizationCache
|
||||
if (!self::isEnabled($config)) { return null; }
|
||||
|
||||
$tokens = null;
|
||||
if (file_exists(__DIR__ . self::$CACHE_PATH)) {
|
||||
$cachePath = self::cachePath($config);
|
||||
if (file_exists($cachePath)) {
|
||||
// Read from the file
|
||||
$cachedToken = file_get_contents(__DIR__ . self::$CACHE_PATH);
|
||||
$cachedToken = file_get_contents($cachePath);
|
||||
if ($cachedToken && JsonValidator::validate($cachedToken, true)) {
|
||||
$tokens = json_decode($cachedToken, true);
|
||||
if ($clientId && is_array($tokens) && array_key_exists($clientId, $tokens)) {
|
||||
@@ -54,8 +55,9 @@ abstract class AuthorizationCache
|
||||
// Return if not enabled
|
||||
if (!self::isEnabled($config)) { return; }
|
||||
|
||||
if (!is_dir(dirname(__DIR__ . self::$CACHE_PATH))) {
|
||||
if (mkdir(dirname(__DIR__ . self::$CACHE_PATH), 0755, true) == false) {
|
||||
$cachePath = self::cachePath($config);
|
||||
if (!is_dir(dirname($cachePath))) {
|
||||
if (mkdir(dirname($cachePath), 0755, true) == false) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -71,7 +73,7 @@ abstract class AuthorizationCache
|
||||
'tokenExpiresIn' => $tokenExpiresIn
|
||||
);
|
||||
}
|
||||
file_put_contents(__DIR__ . self::$CACHE_PATH, json_encode($tokens));
|
||||
file_put_contents($cachePath, json_encode($tokens));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -89,6 +91,19 @@ abstract class AuthorizationCache
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the cache file path
|
||||
*
|
||||
* @param $config
|
||||
* @return string
|
||||
*/
|
||||
public static function cachePath($config)
|
||||
{
|
||||
$config = ($config && is_array($config)) ? $config : PPConfigManager::getInstance()->getConfigHashmap();
|
||||
$cachePath = (array_key_exists("cache.FileName", $config)) ? trim($config['cache.FileName']) : null;
|
||||
return empty($cachePath) ? __DIR__ . self::$CACHE_PATH : $cachePath;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -49,11 +49,17 @@ validation.level=log
|
||||
;Caching Configuration
|
||||
[cache]
|
||||
; If Cache is enabled, it stores the access token retrieved from ClientId and Secret from the
|
||||
; server into a file provided in constant $CACHE_PATH in PayPal/Cache/AuthorizationCache.
|
||||
; server into a file provided by the cache.FileName option or by using
|
||||
; the constant $CACHE_PATH value in PayPal/Cache/AuthorizationCache if the option is omitted/empty.
|
||||
; If the value is set to 'true', it would try to create a file and store the information.
|
||||
; For any other value, it would disable it
|
||||
; Please note, this is a very good performance improvement, and we would encourage you to
|
||||
; set this up properly to reduce the number of calls, to almost 50% on normal use cases
|
||||
; PLEASE NOTE: You may need to provide proper write permissions to /var directory under PayPal-PHP-SDK on
|
||||
; your hosting server
|
||||
; your hosting server or whichever custom directory you choose
|
||||
cache.enabled=true
|
||||
; When using a relative path, the cache file is created
|
||||
; relative to the .php file that is the entry point
|
||||
; for this request. You can also provide an absolute
|
||||
; path here
|
||||
cache.FileName=../auth.cache
|
||||
|
||||
Reference in New Issue
Block a user