1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-26 16:52:41 +01:00

When "apcu_clear_cache()" exists, prefer it as a cache clear callback over "apc_clear_cache()"

Summary:
See PHI36. APCu originally had `apc_` methods, but at some point dropped these and only provides `apcu_` methods.

When the `apcu_` method is present, use it. It may not be present for older versions of APCu, so keep the fallback.

Test Plan:
  - With modern APCu, clicked "Purge Caches" in Config > Caches.
  - Before: fatal on bad `apc_clear_caches` call.
  - After: Valid cache clear.

Reviewers: chad

Reviewed By: chad

Differential Revision: https://secure.phabricator.com/D18449
This commit is contained in:
epriestley 2017-08-21 14:04:08 -07:00
parent e40c002a6d
commit df21391b8e

View file

@ -50,9 +50,15 @@ final class PhabricatorDataCacheSpec extends PhabricatorCacheSpec {
->setVersion(phpversion('apcu')); ->setVersion(phpversion('apcu'));
if (ini_get('apc.enabled')) { if (ini_get('apc.enabled')) {
if (function_exists('apcu_clear_cache')) {
$clear_callback = 'apcu_clear_cache';
} else {
$clear_callback = 'apc_clear_cache';
}
$this $this
->setIsEnabled(true) ->setIsEnabled(true)
->setClearCacheCallback('apc_clear_cache'); ->setClearCacheCallback($clear_callback);
$this->initAPCCommonSpec(); $this->initAPCCommonSpec();
} else { } else {
$this->setIsEnabled(false); $this->setIsEnabled(false);