@apptester

Как называется «движок для исполнения выражений»?

Заранее прошу прощения, если не смог сформулировать вопрос доступным языком. "Движок" работает так:
  • пользователь на фронте может составлять выражения с помощью визуального конструктора
  • получается выражение, например (value1 > value2) ИЛИ (value3 != value4) И (value5 <= value6), для каждого оператора сравнения свой набор операндов
  • на стороне сервера разбор выражения, валидация, выполнение

Нашел вот это symfony.com/doc/current/components/expression_lang... и модуль ценовых правил движка magento. Первое не подходит так как по сути это что-то вроде простого eval, второе прям то, что нужно, но выдирать всю логику из множества классов движка ну очень долго.
Есть ли такие в природе или хотя бы близкие по логике, которые можно подпилить под свои нужды?
  • Вопрос задан
  • 111 просмотров
Решения вопроса 1
Читал как-то реализацию такой задачи в книге "Мэтт Зандстра - PHP. Объекты, шаблоны и методики программирования", 11-я глава посвещена этому. Это можно реализовать используя шаблон проектирования Interpreter https://habrahabr.ru/post/136371/.
Это если вы хотите разобраться в вопросе и все написать самому, чтобы было гибко и заточено под конкретную задачу.
Если нет желания/времени вникать - то можно взять любой который нагуглится по запросу "php expression evaluator", например.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы