Движок правил wb-rules 1.7: различия между версиями

Подготовка страницы к переводу
(Подготовка страницы к переводу)
Строка 1: Строка 1:
<languages/>
<translate>
В обновлённом движке правил wb-rules присутствует ряд важных нововведений, касающихся логики написания сценариев.
В обновлённом движке правил wb-rules присутствует ряд важных нововведений, касающихся логики написания сценариев.


= Сценарии =
= Сценарии =


== Изоляция сценариев ==
== Изоляция сценариев ==
Строка 7: Строка 10:
Начиная с версии wb-rules 1.7, локальные переменные и функции, обьявленные в файле сценария не видны в других сценариях.
Начиная с версии wb-rules 1.7, локальные переменные и функции, обьявленные в файле сценария не видны в других сценариях.
Таким образом, каждый сценарий может определять свои функции и переменные без риска изменить поведение других сценариев.
Таким образом, каждый сценарий может определять свои функции и переменные без риска изменить поведение других сценариев.


=== Пример ===
=== Пример ===
В качестве примера приведём два сценария, одновременно запускаемых в движке правил.
В качестве примера приведём два сценария, одновременно запускаемых в движке правил.
Каждый сценарий определяет переменные и функции.
Каждый сценарий определяет переменные и функции.
Строка 62: Строка 67:
myFuncOne /etc/wb-rules/rules1.js:6 preventsyield
myFuncOne /etc/wb-rules/rules1.js:6 preventsyield
</pre>
</pre>




Строка 77: Строка 83:
Начиная с версии 1.7, в подобной конструкции обычно нет необходимости. Тем не менее, старые сценарии,
Начиная с версии 1.7, в подобной конструкции обычно нет необходимости. Тем не менее, старые сценарии,
использующие эту конструкцию, продолжат работу без изменений в поведении.
использующие эту конструкцию, продолжат работу без изменений в поведении.


=== Обходные пути ===
=== Обходные пути ===
Строка 82: Строка 89:
Если в вашей системе использовалось общее глобальное пространство для хранения общих данных и функций,
Если в вашей системе использовалось общее глобальное пространство для хранения общих данных и функций,
есть несколько способов реализации такого поведения:
есть несколько способов реализации такого поведения:


==== Постоянное хранилище ====
==== Постоянное хранилище ====
Строка 97: Строка 105:
ps.myvar = "value"; // это значение доступно для всех пользователей хранилища с именем "my-global-storage"
ps.myvar = "value"; // это значение доступно для всех пользователей хранилища с именем "my-global-storage"
</syntaxhighlight>
</syntaxhighlight>


==== Прототип глобального объекта ====
==== Прототип глобального объекта ====
Строка 127: Строка 136:


Таким образом, первый способ обращения будет работать только в том случае, если myVar не определена в верхних областях видимости.
Таким образом, первый способ обращения будет работать только в том случае, если myVar не определена в верхних областях видимости.




Строка 142: Строка 152:


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


== Виртуальные устройства ==
== Виртуальные устройства ==
Строка 165: Строка 176:
});
});
</syntaxhighlight>
</syntaxhighlight>
</translate>
12 063

правки