Как сделать whitelist PHP функций в eval()?
Никак, это невозможно.
Вам нужна песочница, или виртуальная машина.$options = array(
  'safe_mode'=>true,
  'open_basedir'=>'/var/www/users/jdoe/',
  'allow_url_fopen'=>'false',
  'disable_functions'=>'exec,shell_exec,passthru,system',
  'disable_classes'=>'myAppClass');
$sandbox = new Runkit_Sandbox($options);

$sandbox->ini_set('html_errors',true);

// ...

$sandbox->eval('var_dump(isset($foo));');
https://php.net/manual/ru/runkit.sandbox.php
как такое можно реализовать я особо найти не смог
Плохо искали, Corveda/PHPSandbox