Blame view

vendor/ezyang/htmlpurifier/maintenance/generate-schema-cache.php 1.33 KB
abf1649b   andryeyev   Чистая установка ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
  #!/usr/bin/php
  <?php
  
  require_once dirname(__FILE__) . '/common.php';
  require_once dirname(__FILE__) . '/../library/HTMLPurifier.auto.php';
  assertCli();
  
  /**
   * @file
   * Generates a schema cache file, saving it to
   * library/HTMLPurifier/ConfigSchema/schema.ser.
   *
   * This should be run when new configuration options are added to
   * HTML Purifier. A cached version is available via the repository
   * so this does not normally have to be regenerated.
   *
   * If you have a directory containing custom configuration schema files,
   * you can simple add a path to that directory as a parameter to
   * this, and they will get included.
   */
  
  $target = dirname(__FILE__) . '/../library/HTMLPurifier/ConfigSchema/schema.ser';
  
  $builder = new HTMLPurifier_ConfigSchema_InterchangeBuilder();
  $interchange = new HTMLPurifier_ConfigSchema_Interchange();
  
  $builder->buildDir($interchange);
  
  $loader = dirname(__FILE__) . '/../config-schema.php';
  if (file_exists($loader)) include $loader;
  foreach ($_SERVER['argv'] as $i => $dir) {
      if ($i === 0) continue;
      $builder->buildDir($interchange, realpath($dir));
  }
  
  $interchange->validate();
  
  $schema_builder = new HTMLPurifier_ConfigSchema_Builder_ConfigSchema();
  $schema = $schema_builder->build($interchange);
  
  echo "Saving schema... ";
  file_put_contents($target, serialize($schema));
  echo "done!\n";
  
  // vim: et sw=4 sts=4