PHP в деталях


         

в которых объявляются классы удаленных


Скрипты, в которых объявляются классы удаленных объектов имеют требование к наименованию: так, класс Users должен содержаться в Users.banana.php и быть наследником класса Banana. Так же в конце класса добавляются две строчки (см. пример), необходимые для инициализации удаленного объекта.

Наглядный пример: класс удаленного объекта:
<? /* Club.banana.php */ /* Класс Club */ Class Club extends Banana {     var $members;
    function Club () {         $this->members="0";     }
    function increase () {         $this->members++;     } }
$club = new Club(); $club->run(); ?>
и клиентский скрипт:
<? /* club.php */     $srm = new SRM ("/tmp/srm.socket", 7777);
    $t = new SRMApp ($srm,"Club");     $t->increase();     echo $t->members."_n";
print_r($t); ?>
Кладем класс в class_path, рестартим srmd и выполняем клиентский скрипт. На выходе получем:
--=-- [цифра] srmapp Object ( [conn_id] => Resource id #2 [handle] => 1 ) --=--
Цифра будет увеличиваться с каждым рефрешем. Естественно, если закомментить строку с increase(), то ее значение останется прежним. Похоже на сессию, основное различие в том, что она одна на всех.

Подобный класс можно прикрутить к форуму, вместо просто присвоения свойства members в конструкторе можно сделать подсчет членов клуба в базе (незачем эту выборку делать каждому посетителю на каждой странице), в случае добавления или удаления ? вызывать соответствующий метод класса ? inrease или decrease (увеличение на 1 и уменьшение соотв-но).

По-моему очень удобно.

Аналогично организуется класс UsersOnSite. Принцип прост ? выставлять человеку уникальную куку, проверять есть ли она у нас, нет ? +1 человек, проверяем таймауты у юзеров, кого-то удаляем и т.п.

Пока не работает, но в ближайшем будущем обещается (по словам Derick Rethans):
  • например, сохранение и поднятие дампа между перезапусками демона);

  • удаленные объекты не могут содержать другие удаленные объекты и ссылки на них;

  • и еще много полезных features;

  • ещё нет версии для Win(и вряд-ли появится в ближайшее время).

  • Также НЕ поддерживается (и скорее всего не будет): видимость переменных среды PHP ($_SERVER, $_COOKIE etc.) в удаленных объектах по чисто техническим причинам ? демон srmd работает, не зная об апаче ничего.

    Не знаю как вас, а меня появление такого extension, несмотря на его сырость, само по себе уже очень радует. Может, и вправду "PHP goes to the enterprise level"?

    Если это кого-то кроме меня радует ? могу написать также, как я ставил и настраивал демона и экстеншен к ПХП.

    (1) если объектов нет в дампе после последнего шатдауна, которые он при прошлом выходе записал (srmd дампит свой "карман" при выходе и при запуске его подхватывает)

    Содержание  Назад  Вперед





    Forekc.ru
    Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий