платформа управления контентом 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 в качестве механизма кэширования?






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