Задать вопрос
@apptester

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

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

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽