public static function fromConfig(array $config)
{
if (array_key_exists('report', $config) || array_key_exists('enforce', $config)) {
$enforce = DirectiveSet::fromConfig($config, 'enforce');
$report = DirectiveSet::fromConfig($config, 'report');
} else {
// legacy config
$directiveSet = DirectiveSet::fromLegacyConfig($config);
if (!!$config['report_only']) {
$enforce = new DirectiveSet();
$report = $directiveSet;
} else {
$enforce = $directiveSet;
$report = new DirectiveSet();
}
}
return new self($report, $enforce, !!$config['compat_headers'], $config['hosts']);
}