В php как делать экземпляры сессии? - PullRequest
0 голосов
/ 28 февраля 2009

Я довольно новичок в php и пытаюсь выучить его.

Мой вопрос довольно прост, но я немного растерялся, пытаясь найти его.

Я просто хочу создать объект для управления подключением к базе данных. Я уже сделал объект, и теперь проблема, с которой я сталкиваюсь:

Как мне сохранить его экземпляр для сеанса? (Чтобы мне не нужно было открывать / закрывать соединение с базой данных при каждой загрузке страницы) И как мне это потом назвать?

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

Ответы [ 2 ]

3 голосов
/ 28 февраля 2009

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

Вы также можете использовать __ sleep () и __wakeup () для сериализации ваших объектов . Они будут вызваны автоматически при сериализации и десериализации. Вы можете использовать эти методы для подключения и отключения по мере необходимости.

1 голос
/ 28 февраля 2009

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

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

Если вы действительно обеспокоены производительностью, почему бы не кэшировать затронутые страницы и вообще не использовать соединение с базой данных?

Я думаю, что вы могли бы получить желаемый эффект с помощью этой функции (не используйте ее самостоятельно, предполагая mysql), но обязательно прочитайте комментарии:

http://www.php.net/mysql-pconnect

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

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