PhpSandbox\PHPSandbox::setOption PHP Méthode

setOption() public méthode

You can pass an $option name to set to $value, an array of $option names to set to $value, or an associative array of $option names and their values to set.
public setOption ( string | array $option, boolean | integer | null $value = null )
$option string | array String or array of strings or associative array of keys of option names to set $value to
$value boolean | integer | null Boolean, integer or null $value to set $option to (optional)
    public function setOption($option, $value = null)
    {
        if (is_array($option)) {
            return $this->setOptions($option, $value);
        }
        $option = strtolower($option);
        //normalize option names
        switch ($option) {
            case 'error_level':
                $this->error_level = is_numeric($value) ? intval($value) : null;
                break;
            case 'time_limit':
                $this->time_limit = is_numeric($value) ? intval($value) : null;
                break;
            case 'validate_functions':
            case 'validate_variables':
            case 'validate_globals':
            case 'validate_superglobals':
            case 'validate_constants':
            case 'validate_magic_constants':
            case 'validate_namespaces':
            case 'validate_aliases':
            case 'validate_classes':
            case 'validate_interfaces':
            case 'validate_traits':
            case 'validate_keywords':
            case 'validate_operators':
            case 'validate_primitives':
            case 'validate_types':
            case 'sandbox_includes':
            case 'restore_error_level':
            case 'convert_errors':
            case 'capture_output':
            case 'auto_whitelist_trusted_code':
            case 'auto_whitelist_functions':
            case 'auto_whitelist_constants':
            case 'auto_whitelist_globals':
            case 'auto_whitelist_classes':
            case 'auto_whitelist_interfaces':
            case 'auto_whitelist_traits':
            case 'auto_define_vars':
            case 'overwrite_defined_funcs':
            case 'overwrite_sandboxed_string_funcs':
            case 'overwrite_func_get_args':
            case 'overwrite_superglobals':
            case 'allow_functions':
            case 'allow_closures':
            case 'allow_variables':
            case 'allow_static_variables':
            case 'allow_objects':
            case 'allow_constants':
            case 'allow_globals':
            case 'allow_namespaces':
            case 'allow_aliases':
            case 'allow_classes':
            case 'allow_interfaces':
            case 'allow_traits':
            case 'allow_generators':
            case 'allow_escaping':
            case 'allow_casting':
            case 'allow_error_suppressing':
            case 'allow_references':
            case 'allow_backticks':
            case 'allow_halting':
                $this->{$option} = !!$value;
                break;
        }
        return $this;
    }

Usage Example

 public function testSettingAndUnsettingOptions()
 {
     $this->sandbox->setOption('error_level', 1);
     $this->assertEquals(1, $this->sandbox->getOption('error_level'));
     $this->sandbox->setOption('error_level', null);
     $this->assertEquals(null, $this->sandbox->getOption('error_level'));
 }
PHPSandbox