Вернуться на сайт x3m.cms

Принципы организации асинхронного обмена в x3m

Концепция асинхронного вызова в x3m построена на принципе коннекторов, принцип прост - у каждого модуля свой коннектор, которые позволяет асинхронно вызывать любой метод фронт-класcа модуля.

Например для модуля интернет-магазин:

var ishop= new fConnector('ishop'); // - инициализируем объект коннектор

так как каждый модуль имеет фронт-класс, например ishop.front.class.php, у каждого из модулей возможно существование .xfront класса в котором описаны методы доступные из коннектора, в свою очередь

конектор имеет доступ и к методам front класса, так как .xfront модуль является потомком front.

Поясним на примере модуля интернет-магазина ishop:

  • //основной модуль ishop
  • PHP
  • class ishop_module_front extends ishop_module_tpl
  • {
  • ...
  • //фукция для добавления товара в корзину
  • function _add($id, $count = 1, $rq_hash = null, $ishop_ext_data = array(), $prevent_rq_hash = null)
  • {
  • ...
  • }
  • ...
  • }
  • //xfront часть модуля ishop
  • class ishop_module_xfront extends ishop_module_front
  • {
  • ...
  • //описываем функцию для добавления в корзину - название функции произвольно
  • //$params -ассоциативный массив параметров
  • function add_to_cart($params)
  • {
  • $this->_add($params['id'],$params['count']); //вызываем метод родительского класса, отвечающий за добавление товара в корзину
  • }
  • ...
  • }

  • Javascript
  • var ishop= new fConnector('ishop'); // - инициализируем объект коннектор
  • //вызов данной функции позволит асинхронно отправить товар в корзину
  • function add_good_to_cart(good_id,good_count)
  • {
  • ishop.execute({add_to_cart:{id:good_id,count:good_count}}); //вызываем метод add_to_cart с массивом параметров id,count;
  • }

© 2009 Все права на систему © X3M.CMS принадлжат OДО «Центр информационных технологий Биконсалт»