В нашем текущем приложении у меня есть отчет, содержащий что-то вроде:
if($foo == 3 || $bar > 3) {
$e = someFunction();
};
, но для другого клиента это же выражение может быть:
if($foo == 3 || $bar == 5 && $foobar != 9) {
$e = someFunction();
};
] Есть ли простой способ сохранить два разных выражения, только биты
$foo == 3 || $bar > 3 OR $foo == 3 || $bar == 5
в базе данных (MySQL), чтобы мне не приходилось жестко кодировать все эти правила клиентом или поддерживать клиентские версии одного и того же отчета. Я пытаюсь выяснить, могу ли я установить переменную для замены условий Примерно так:
$conditions = $row_rsConditions['condition_row'] //Get $foo == 3 || $bar > 3 from the DB and store it as $conditions
if($conditions) {
$e = someFunction();
};
Может быть> 100 разных клиентов, и каждый клиент может / иметь другой набор выражений. Я просто не уверен в правильном / наилучшем способе сделать это.
ОБНОВЛЕНИЕ :
Я думаю, что понимаю проблемы, связанные с использованием функции PHP eval (). Но из-за количества возможных комбинаций я склоняюсь к использованию БД для хранения условий (пока не уверен в использовании eval ())
Имеет ли значение (безопаснее), если нет пользовательского интерфейса, который пишет в поле / таблицу условия? Это может быть то, чем мы справимся в одиночку.