Перенос фон APC в APCU в приложении php - PullRequest
0 голосов
/ 23 февраля 2019

платформа управления контентом MODX предоставляет возможность использовать APC в качестве механизма кэширования.Я понял, что смогу перенести это в APCu.

Я скопировал и отредактировал весь код, так что теперь у меня есть второй вариант, который предлагает APCu в качестве механизма кэширования.Поскольку мои навыки php уменьшились в последние годы, я борюсь с правильным способом переписать конструктор.

Оригинальный код выглядит так:

class xPDOAPCCache extends xPDOCache {
public function __construct(& $xpdo, $options = array()) {
    parent :: __construct($xpdo, $options);
    if (function_exists('apc_exists')) {
        $this->initialized = true;
    } else {
        $this->xpdo->log(xPDO::LOG_LEVEL_ERROR, "xPDOAPCCache[{$this->key}]: Error creating APC cache provider; xPDOAPCCache requires the APC extension for PHP, version 2.0.0 or later.");
    }
}
[...]

Я переписал это так:

class xPDOAPCuCache extends xPDOCache {
   public function __construct(& $xpdo, $options = array()) {
        parent :: __construct($xpdo, $options);
        if (function_exists('apcu_exists')) {
            $this->initialized = true;
        } else {
            $this->xpdo->log(xPDO::LOG_LEVEL_ERROR, "xPDOAPCuCache[{$this->key}]: Error creating APCu cache provider; xPDOAPCuCache requires the APCu extension for PHP.");
        }
    }
    [...]

Это не может работать, поскольку APCu не принимает те же параметры, что и APC.(См. http://php.net/manual/de/apciterator.construct.php и http://php.net/manual/de/apcuiterator.construct.php)

Как мне нужно отредактировать этот конструктор, чтобы моя CMF работала с APCu в качестве механизма кэширования?

1 Ответ

0 голосов
/ 23 февраля 2019

Ваш пример кода вообще не относится к APCIterator?Поэтому сложно сказать, какие изменения это произойдет.

Я предлагаю вам взглянуть на apcu_bc , который обеспечивает уровень совместимости с API APC поверх APCu.Я не уверен насчет итератора конкретно, но я успешно использовал этот пакет довольно долго, пока постепенно не перешел на нативный API-интерфейс APCu.

...