Prepended constants with C_ to avoid reserved words as per https://www.php.net/manual...
[htmlpurifier/darkodev.git] / library / HTMLPurifier / ConfigSchema / Builder / ConfigSchema.php
blobd5906cd46dd39ab0343b53cb2a5356f1bbaa39cd
1 <?php
3 /**
4 * Converts HTMLPurifier_ConfigSchema_Interchange to our runtime
5 * representation used to perform checks on user configuration.
6 */
7 class HTMLPurifier_ConfigSchema_Builder_ConfigSchema
10 /**
11 * @param HTMLPurifier_ConfigSchema_Interchange $interchange
12 * @return HTMLPurifier_ConfigSchema
14 public function build($interchange)
16 $schema = new HTMLPurifier_ConfigSchema();
17 foreach ($interchange->directives as $d) {
18 $schema->add(
19 $d->id->key,
20 $d->default,
21 $d->type,
22 $d->typeAllowsNull
24 if ($d->allowed !== null) {
25 $schema->addAllowedValues(
26 $d->id->key,
27 $d->allowed
30 foreach ($d->aliases as $alias) {
31 $schema->addAlias(
32 $alias->key,
33 $d->id->key
36 if ($d->valueAliases !== null) {
37 $schema->addValueAliases(
38 $d->id->key,
39 $d->valueAliases
43 $schema->postProcess();
44 return $schema;
48 // vim: et sw=4 sts=4