sergejey / majordomo-mqtt

6 stars 13 forks source link

Не выполняются связанные методы, при вызове связанного метода не передается значение #16

Open zimur opened 5 years ago

zimur commented 5 years ago

1) Не выполняются связанные методы Насколько я вижу - опечатка в методе processMessage вместо if ($rec['LINKED_OBJECT'] && $cmd_rec['LINKED_METHOD']) { должно быть if ($rec['LINKED_OBJECT'] && $rec['LINKED_METHOD']) {

2) При вызове связанного метода не передается значение после исправления предыдущего пункта связанный метод вызывается, но если в качестве параметра передается значение, а не массив - то в методе callMethodSafe параметр обнуляется, т.к. там $call_stack[] = $current_call; if (!is_array($params)) { $params = array(); } Пока исправил так, но это неверный путь: if ($rec['LINKED_OBJECT'] && $rec['LINKED_METHOD']) { if (!is_array($rec['VALUE'])) { $params = array('value'=>$rec['VALUE']); } else { $params = $rec['VALUE']; } callMethodSafe($rec['LINKED_OBJECT'] . '.' . $rec['LINKED_METHOD'], $params);

zimur commented 5 years ago

Кинул pull request сюда и в основную ветку majordomo (фикс в callMethodSafe)