Перейти к содержанию

Способы передачи данных между компонентами

Способы передачи данных между компонентами:

  1. Глобальные переменные, Например:
$GLOBALS['mycomponent_variable'] = $arResult["ID"];

Кроме GLOBALS можно использовать $_SESSION при условиях, что:

  • данные небольшого объема;
  • сразу после передачи данные будут удалены из $_SESSION, так как в противном случае будут жить, пока сессия жива.
  • Класс обертка, например:
Class GarbageStorage{
 private static $storage = array();
 public static function set($name, $value){ self::$storage[$name] = $value;}
 public static function get($name){ return self::$storage[$name];}
}

соответственно, использование:

\GarbageStorage::set('MyCustomID', $arResult["ID"]); #установить значение
\GarbageStorage::get('MyCustomID'); #получить значение

Выбор способа зависит от компонентов и от того что именно вы хотите передать в другой компонент и есть ли необходимые данные в некешируемых файлах (речь идет о component_epilog.php). Использование класса обертки сложнее, но гораздо правильнее, особенно в свете создаваемого нового ядра.