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']);
 }