Есть ли в PHP глобальное состояние кросс-сеанса кросс-запроса?
Я хотел бы кэшировать некоторые данные, которые будут использоваться всеми моими запросами. Я хотел бы, чтобы кэш в памяти очищался при изменении файла кода (информация получается путем отражения, и изменение файла кода, вероятно, сделает ее недействительной). Это возможно без сторонних внешних сервисов (таких как memcached)?
Добавлено: я знаю, что веб-серверы, такие как apache, создают несколько рабочих процессов. Это нормально, если у каждого из них есть свой кеш.
2 ответа
Нет, у PHP нет такой области приложения, как Java. Лучшее, что вы можете сделать, - это объем сессии. Однако вы можете легко настроить что-то вроде Memcached для имитации области приложения.
Вы можете использовать кэш APC вместо memcached. Например, функция apc_add. К сожалению, APC не является стандартно установленным с php, поэтому на самом деле не обходится без стороннего внешнего сервиса.