Миграция фон APC в APCU в приложении php

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
177
1

Ответы 1

Ваш пример кода, похоже, вообще не относится к APCIterator? Так что трудно сказать, какие изменения потребуются.

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

Другие вопросы по теме