Есть ли способ в PHP использовать переменные вне сеанса, которые не будут загружаться / выгружаться при каждом подключении, как на сервере Java?
Прошу извинить за неточность, я не понимаю, как правильно это написать.
Основная идея - иметь что-то вроде этого:
<?php
...
// $variablesAlreadyLoaded is kind of "static" and shared between all PHP threads
// No need to initialize/load/instantiate it.
$myVar = $variablesAlreadyLoaded['aConstantValueForEveryone'];
...
?>
Я уже делал подобные вещи, используя shmop
и другие странные вещи, но если есть «чистый» способ сделать это на «чистом PHP» без использования систем кэширования (я думаю о APC, Redis ...) или базе данных.
ИЗМЕНИТЬ 1:
Поскольку люди (благодаря тому, что они потратили на меня время) отвечают мне одинаково с сеансами, я добавляю ограничение, которое я пропустил, чтобы написать: никаких сеансов, пожалуйста.
ИЗМЕНИТЬ 2:
Похоже, что единственные собственные методы PHP для этого - это разделяемая память (shmop
) и именованные каналы. Я бы использовал управляемый способ доступа к разделяемым объектам, не обращая внимания ни на управление памятью (размер блока разделяемой памяти), ни на системные проблемы (каналы).
Затем я поискал в сети модуль / библиотеку PHP, которая предоставляет функции / методы для этого: я ничего не нашел.
ИЗМЕНИТЬ 3:
После нескольких исследований пути, указанного @KFO, выяснилось, что putenv
/ setenv
не предназначены для работы с объектами (и я бы избегал сериализации). Таким образом, он решает проблему с короткими "вещами", такими как строки или числа, но не с более большими / сложными объектами.
Использование "env way" И другого метода для работы с более крупными объектами было бы непоследовательным и добавило бы сложности коду и удобства обслуживания.
ИЗМЕНИТЬ 4:
Нашел: DBus (GREE Lab DBus), но я у меня нет инструментов, чтобы проверить это на работе. Кто-нибудь это уже тестировал?
Я открыт для каждого предложения.
Спасибо
ИЗМЕНИТЬ 5 («ОТВЕТ»):
Поскольку DBus - это не совсем то, что я ищу (необходимо установить сторонний модуль, без «серьезных» свидетельств приложения), теперь я использую Memcache, который уже доказал свою надежность (после комментария @PeterM, см. Ниже ).