PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 6
TarTar Отправлено: 17 Февраля, 2008 - 14:15:13 • Тема: Как удалять объекты? • Форум: Программирование на PHP

Ответов: 11
Просмотров: 1431
Скорее всего, придется переделать.
Объекты могут использовать достаточно большое количество ресурсов, освобождение которых я не могу контролировать. При большом количестве пользователей это фигово ))

Беду мозг переделывать )))

Алексей.
TarTar Отправлено: 16 Февраля, 2008 - 15:44:02 • Тема: Как удалять объекты? • Форум: Программирование на PHP

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

Алексей.
TarTar Отправлено: 16 Февраля, 2008 - 14:42:44 • Тема: Как удалять объекты? • Форум: Программирование на PHP

Ответов: 11
Просмотров: 1431
EuGen, я вот вижу у себя несколько другое. Пример в п. 1 работает, и я через сессии передаю указатель на объект, созданный в одном скрипте, в другой скрипт (грубо говоря, объект создается на одной странице, а используется на многих других)

valenok, а нафига они тогда нужны?
TarTar Отправлено: 14 Февраля, 2008 - 22:00:32 • Тема: Как удалять объекты? • Форум: Программирование на PHP

Ответов: 11
Просмотров: 1431
Спасибо, scuter!

Может, быть я чего-то там пропустил, но эти все вещи понятны.

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

Алексей.
TarTar Отправлено: 13 Февраля, 2008 - 17:54:48 • Тема: Как удалять объекты? • Форум: Программирование на PHP

Ответов: 11
Просмотров: 1431
Спасибо, valenok!

С закрытием сессий понятно ))
Мне просто пока непривычны в PHP некоторые вещи:

нетипизированность (явная) переменных (от этого и сомнение, что при удалении сессии, корректно удалится объект с вызовом деструкторов и т. д.);

ну и самая большая проблема - передача объектов между страницами - очень сложно привыкнуть )). Я пока усвоил три способа передачи: через сессии, методом POST со скрытыми формами и GET через URL. Все эти способы ненадежны, второй и третий еще и не удобны совсем )).

Мож еще чего есть? )))

Алексей
TarTar Отправлено: 13 Февраля, 2008 - 16:28:37 • Тема: Как удалять объекты? • Форум: Программирование на PHP

Ответов: 11
Просмотров: 1431
Привет!

PHP5

Есть некий класс, например:
CODE (text):
скопировать код в буфер обмена
  1. class cOne{
  2.    var $c;
  3.    function get(){};
  4.    function set(){};
  5. }

Мы создаем экземпляр этого класса и хотим работать с ним, грубо говоря, на всех страницах сайта. Для этого используем сессии и перед использованием объекта на этих страницах пишем:
CODE (text):
скопировать код в буфер обмена
  1. session_start();
  2. $one = NULL;
  3. if( isset( $_SESSION['one'] ) )
  4.    $one = $_SESSION['one'];
  5. else{
  6.    $one = new cOne;
  7.    $_SESSION['one'] = $one;
  8. }

Затем нормально с ним работаем
CODE (text):
скопировать код в буфер обмена
  1. $one->get();
  2. $one->set();

Все это вроде работает, но есть беспокойство по поводу удаления этого объекта.

Удаляется ли он корректно?
Когда он удаляется?
Как проверить его удаление?


Алексей.

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB