Aerys\Bootstrapper::generatePublicOptionsStruct PHP Method

generatePublicOptionsStruct() private method

private generatePublicOptionsStruct ( Options $options ) : Options
$options Options
return Options
    private function generatePublicOptionsStruct(Options $options) : Options
    {
        $code = "return new class extends \\Aerys\\Options {\n";
        foreach ((new \ReflectionClass($options))->getProperties() as $property) {
            $name = $property->getName();
            if ($name[0] !== "_") {
                $code .= "\tpublic \${$name};\n";
            }
        }
        $code .= "};\n";
        $publicOptions = eval($code);
        foreach ($publicOptions as $option => $value) {
            $publicOptions->{$option} = $options->{$option};
        }
        return $publicOptions;
    }