Nelmio\SecurityBundle\ContentSecurityPolicy\DirectiveSet::fromConfig PHP Method

fromConfig() public static method

public static fromConfig ( PolicyManager $policyManager, array $config, $kind )
$policyManager PolicyManager
$config array
    public static function fromConfig(PolicyManager $policyManager, array $config, $kind)
    {
        $directiveSet = new self($policyManager);
        $directiveSet->setLevel1Fallback(isset($config[$kind]) ? $config[$kind]['level1_fallback'] : false);
        if (!array_key_exists($kind, $config)) {
            return $directiveSet;
        }
        $parser = new ContentSecurityPolicyParser();
        foreach (self::getNames() as $name => $type) {
            if (!array_key_exists($name, $config[$kind])) {
                continue;
            }
            $directiveSet->setDirective($name, $parser->parseSourceList($config[$kind][$name]));
        }
        return $directiveSet;
    }

Usage Example

 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']);
 }
All Usage Examples Of Nelmio\SecurityBundle\ContentSecurityPolicy\DirectiveSet::fromConfig