APC (он же Alternative PHP Cache) — бесплатное расширение к PHP, предназначенное для оптимизации промежуточного кода и кэширования данных и компилированного байт-кода в разделяемой памяти.

Я заинтересовался APC с позиции его возможного применения в плагине WP File Cache, но при реализации модуля столкнулся с некоторыми особенностями (читай: ошибками), о которых документация умалчивает.

Пример 1.

[-]
View Code PHP
    $data = new stdClass();
    $data->int = 1;
    $data->string = "string";

    apc_store('test', $data);
    var_export(apc_fetch('test'));
    apc_delete('test');

Результат:

[-]
View Code Text
stdClass::__set_state(array( 'int' => 1, 'string' => 'string', ))

Теперь попробуем то же самое, но поместим объект в массив:

[-]
View Code PHP
    $data = new stdClass();
    $data->int = 1;
    $data->string = "string";

    $arr = array($data);
    apc_store('test', $arr);
    var_export(apc_fetch('test'));
    apc_delete('test');

Я ожидал что-то такое:

[-]
View Code Text
array ( 0 => stdClass::__set_state(array( 'int' => 1, 'string' => 'string', )), )

Получилось хуже:

[-]
View Code Text
array ( 0 => NULL, )

Как оказалось, APC не умеет проводить сериализацию объектов, если они обёрнуты в массивы. Обидно, я хотел сэкономить на дорогом вызове serialize().

Данная ошибка существует в APC 3.0.19. Эх…

Добавить в закладки
  • del.ici.ous
  • Digg
  • Furl
  • Google
  • Simpy
  • Spurl
  • Y! MyWeb
  • БобрДобр
  • Мистер Вонг
  • Яндекс.Закладки
  • Текст 2.0
  • News2
  • AddScoop
  • RuSpace
  • RUmarkz
  • Memori
  • Закладки Google
  • Писали
  • СМИ 2
  • Моё Место
  • Сто Закладок
  • Ваау!
  • Technorati
  • RuCity
  • LinkStore
  • NewsLand
  • Lopas
  • Закладки - I.UA
  • Connotea
  • Bibsonomy
  • Trucking Bookmarks
  • Communizm
  • UCA

Связанные записи

6
Дек
2008

Комментарии к статье «Недокументированные особенности APC»  »

К статье «Недокументированные особенности APC» комментариев пока нет. Не хотите ли стать первым?

Подписаться на RSS-ленту комментариев к статье «Недокументированные особенности APC» Trackback URL: http://blog.sjinks.org.ua/php/429-undocumented-features-of-apc/trackback/

Оставить комментарий к статье «Недокументированные особенности APC»

Вы можете использовать данные тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Оставляя комментарий, Вы выражаете своё согласие с Правилами комментирования.

Подписаться, не комментируя