Существует ли способ совместно использовать объект между php страницами?

Проект не является заявлением. Это возможность оператора select. Оператор select имеет три возможности. Это отбор, проекция, объединение. Выбор - это получает строки, которые удовлетворены данным запросом. Проекция - это выбирает столбцы, которые удовлетворены данным запросом. Join-it объединяет две или более таблицы

12
задан erotsppa 25 May 2009 в 21:33
поделиться

5 ответов

Это немного сложный ответ, и, возможно, это не совсем то, что вы ищете.

PHP построен на архитектуре «без совместного использования». Если вам требуется какой-то тип состояния в вашем приложении, вы должны сделать это другими способами.

Сначала я бы порекомендовал разобраться в сути проблемы .. Вам это действительно нужно? Если вы предполагаете, что приложение PHP может умереть (и потерять состояние), можно ли потерять данные?

Если вы должны поддерживать состояние, даже после того, как приложение умирает или в противном случае, вы должны предположить, что, вероятно, лучшее место для размещения данных находится в MySQL. PHP задуман как тонкий слой вокруг вашей бизнес-логики, поэтому я настоятельно рекомендую его.

Если вы не заботитесь о потере данных после перезапуска, проблемная область, которую вы ищете, вероятно, кэширует. Я бы порекомендовал изучить memcached или, если вы работаете на одной машине, apc . APC определенно будет работать для вас с Apache на одной машине, но вам все равно придется кодировать свое приложение, предполагая, что вы можете потерять данные.

Если вы беспокоитесь, ваше базовое хранилище данных (MySQL) работает слишком медленно, но вы все равно Если необходимо сохранить данные после перезапуска, вам следует изучить комбинацию этих двух систем. Вы всегда можете извлекать и извлекать данные из кеша, но только когда он обновляется, отправляйте их в Mysql.

Если данные являются чисто пользовательскими или привязанными к сеансу, вы, вероятно, захотите просто изучить систему сеансов.

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

Обновление : Извините, я не читал вашу заметку о совместном использовании сокета. Вам понадобится отдельный демон, чтобы справиться с этим, возможно, если вы объясните свою проблему дальше, могут быть другие подходы. Что это за розетка?

15
ответ дан 2 December 2019 в 04:53
поделиться

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

3
ответ дан 2 December 2019 в 04:53
поделиться

Существует фундаментальная разница между Java, обслуживаемой через Интернет, и интерпретируемыми языками, обслуживаемыми через Интернет, такими как PHP и Perl. В Java ваш веб-сервер будет иметь операционную среду, поддерживающую состояние (например, Tomcat). С интерпретируемыми языками запрос к вашему веб-серверу обычно порождает новый поток веб-сервера, который, в свою очередь, загружает новую операционную среду для этого потока, в данном случае среду PHP.

Следовательно, в PHP нет понятие экземпляров страницы. Каждый запрос к веб-серверу - это новый старт. Все классы перезагружаются, поэтому нет ни концепции разделения классов, ни концепции объединения ресурсов, если только это не реализовано извне.

Таким образом, совместное использование сокетов между веб-запросами на самом деле невозможно.

12
ответ дан 2 December 2019 в 04:53
поделиться

Большинство библиотек баз данных PHP уже используют пул соединений. Вы вызываете, например, pg_connect, как если бы вы запрашивали новое соединение, но если строка соединения совпадает с уже существующим соединением, вместо этого вы получите установленное соединение. Если вас интересует только пул для доступа к базе данных, вы можете просто подтвердить, что он существует в используемой вами библиотеке db.

1
ответ дан 2 December 2019 в 04:53
поделиться

Другим ужасным решением может быть загрузка данных объекта в любую переменную $ _SESSION, а затем их использование обратно в объект другой страницы. Фактически, это решение, которое я собираюсь использовать следовать в моем проекте, пока не получу что-нибудь получше.

С уважением!

0
ответ дан 2 December 2019 в 04:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: