3 use Wikimedia\StaticArrayWriter
;
5 require_once __DIR__
. '/Maintenance.php';
6 require_once __DIR__
. '/includes/ConfigSchemaDerivativeTrait.php';
9 * Maintenance script that generates the PHP representation of the config-schema.yaml file.
11 * @ingroup Maintenance
13 class GenerateConfigSchemaArray
extends Maintenance
{
14 use ConfigSchemaDerivativeTrait
;
17 private const DEFAULT_OUTPUT_PATH
= __DIR__
. '/../includes/config-schema.php';
19 public function __construct() {
20 parent
::__construct();
22 $this->addDescription( 'Generate an optimized config-schema.php file.' );
26 'Path to output relative to $IP. Default: ' . self
::DEFAULT_OUTPUT_PATH
,
32 public function execute() {
33 $schema = $this->loadSettingsSource();
35 foreach ( $schema['config-schema'] as $key => &$value ) {
36 unset( $value['description'] );
39 $content = ( new StaticArrayWriter() )->write(
41 "This file is automatically generated using maintenance/generateConfigSchema.php.\n" .
42 "phpcs:disable Generic.Files.LineLength"
45 $this->writeOutput( self
::DEFAULT_OUTPUT_PATH
, $content );
49 $maintClass = GenerateConfigSchemaArray
::class;
50 require_once RUN_MAINTENANCE_IF_MAIN
;