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; }