Суть в чём: пишу парсер псеводокода в PHP код (который должен вызывать некоторые определенные мной методы и стандартные if, for, else, etc), и после этот код будет запускаться достаточно большое число раз подряд (что при тяжёлом коде может создать серьезную нагрузку на сервер).
На текущий момент реализована схема:
Пользователь пишет псевдокод, который пишется в строку -> Псевдокод преобразуется в код PHP -> в нужный момент я запускаю этот псеводкод функцией eval().
Но такой вариант опасен тем, что при работе парсера могут возникнуть ситуации, когда пользователь сможет запустить вредоносный код. Поэтому есть несколько вариантов:
1. Копать в сторону callable
2. Использовать один из вариантов из статьи
https://habrahabr.ru/post/215139/. Не очень хорошо, ибо замедляет выполнение кода, да и более безопастным не становится.
3. Использовать eval, но на этапе преобразования усиливать проверку.
4. Искать другие варианты.
Какой вариант предложите?