В момент написания эта опция не работает из-за ошибки в исходном коде APC, которая не позволяет вам правильно предварительно загрузить кэш.
Внутри 'main_apc.c
' в методе, называемом 'static int apc_load_data(const char *data_file TSRMLS_DC)
', длина ключа значения, которое нужно сохранить, определяется следующей строкой:
key_len = strlen(key);
Если я прав, это только длина самой строки без нуля.terminator Однако, «_apc_store
», кажется, хочет длину строки ключа, включая терминатор.Если я изменю строку выше на:
key_len = strlen(key)+1;
, тогда функция предварительной загрузки работает как положено.
Вы также можете заметить, что при просмотре записей кэша пользователя отсутствует 1 символ apc.php,Но если вы попытаетесь использовать это в качестве ключа, то APC не вернет содержимое, чтобы оно не работало в качестве обходного пути.