Хранить доменную модель в сеансе PHP
-
21-09-2019 - |
Вопрос
Это хорошая практика для хранения объектов модели домена в сеансе PHP?
Это позволило бы избежать запроса и реконструировать каждый объект PHP к каждому запросу PHP.
Есть ли ограничение размера?
Решение
Если вы используете ООП в PHP, вы, вероятно, хотите, чтобы эти объекты были реконструированы по каждому запросу по нескольким причинам. В целом, не было бы большой разницы в производительности между хранением, загрузкой и десеризацией объектов из сеанса, как вы предложили, или просто реконструкцией их.
Конечно, это будет зависеть от того, какие классы, которые вы используете, тоже. Создание класса обычно не очень проблематично с точки зрения производительности, если только нет реальных вещей, необходимых для этого (запросы базы данных и т. Д.)
Кроме того, это может сделать ваш код менее понятным и/или обслуживаемым.
И да, есть ограниченный размер, определяемый максимальным использованием памяти PHP, установленного в php.ini
Таким образом, этот вопрос не на самом деле нести ответственность, если вы точно не знаете, какие классы вы хотите хранить в сеансе, что они делают и как они взаимодействуют.
Например, если бы у вас был класс, который абстрагирует зарегистрированный пользователь на вашем сайте, хранение его объекта в сеансе PHP, вероятно, было бы хорошей идеей. В большинстве других случаев, однако это не так.