поддерживать состояние объекта на разных страницах, используя PHP - PullRequest
3 голосов
/ 21 июня 2009

как это сделать используя PHP OOP для поддержания состояния объекта в разные страницы.

проблема в том, что я всегда создаю объект на каждой странице.

есть ли решение, которое я создаю один раз и поддерживаю его объект на разных страницах.

Заранее спасибо

Ответы [ 2 ]

9 голосов
/ 21 июня 2009

В PHP почти все создается при каждом обращении к странице. Если вы хотите сохранить состояние, у вас есть несколько вариантов:

  1. Для пользовательских данных вы можете поместить их в файл cookie ( не рекомендуется по соображениям безопасности);
  2. Поместить пользовательские данные в сеанс, что в основном означает запись их в файл и загрузку их из файла при каждом обращении;
  3. Хранение в постоянном хранилище, таком как файл или таблица базы данных;
  4. Храните его в кеше (например, memcached).

Какой из них вы используете, зависит от таких факторов, как глобальные, специфичные для пользователя данные и т. Д., А также от ряда других факторов (например, как часто они читаются, как часто пишутся и т. Д.).

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

2 голосов
/ 21 июня 2009

Вы также можете посмотреть сериализацию объектов. Вы найдете больше информации здесь. http://uk.php.net/serialize. Это преобразует ваш объект в формат, который можно использовать для сохранения в данных сеанса. Как только ваши данные будут сохранены в сеансах, вы сможете прочитать данные на следующей странице загрузки пользователя и отменить сериализацию данных, чтобы вернуть ваш объект!

Вот хорошая статья, которая показывает, как сериализация позволит использовать ваш объект на двух разных страницах PHP. http://www.phpbuilder.com/manual/en/language.oop.serialization.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...