Подтвердить что ты не робот

Как сохранить данные в области приложения в PHP?

Я разработчик Java и С#, и, признаюсь, я не так хорош в PHP.

Мне нужно сохранить объект в области приложения, который живет до тех пор, пока выполняется само приложение. Я не могу сохранить его в сеансе, потому что он истекает, также я не могу сериализовать его на диск.

Есть ли что-то вроде объекта С# Application в PHP?

4b9b3361

Ответ 1

В PHP есть область приложений. он называется APC (альтернативный кэш PHP).

Данные должны быть кэшированы в APC, если они соответствуют следующим критериям:

  • Это не зависит от пользователя (если это так, введите $_SESSION [])
  • Это не очень долго (если это так, используйте файловую систему)
  • Это нужно только на одном сервере PHP (если нет, рассмотрите возможность использования memcached)
  • Вы хотите, чтобы он был доступен для каждой страницы вашего сайта, мгновенно, даже других (не связанных) программ PHP.
  • Вы не возражаете, что все сохраненные в нем данные теряются при перезагрузке/перезагрузке Apache.
  • Вам нужен доступ к данным гораздо быстрее, чем на основе файлов, memcached или (esp.) на основе базы данных.

APC установлен на большое количество хостов уже, но следуйте приведенному выше руководству, чтобы установить его на свой ящик. Затем вы делаете что-то вроде этого:

if (apc_exists('app:app_level_data') !== false)
{
    $data = apc_get('app:app_level_data');
}
else
{
    $data = getFromDB('foo');
    apc_store('app:app_level_data', $data);
}