Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2declare( strict_types = 1 );
3
4namespace Wikimedia\Parsoid\Ext;
5
6/**
7 * A Parsoid native extension module.  This bundles up the
8 * configuration for a number of different ExtensionTagHandlers,
9 * ContentModelHandlers, FragmentHandlers, and DomProcessors into one
10 * registered object.  The only method required is `getConfig`.
11 *
12 * An ExtensionModule can be created on-demand from configuration data
13 * specified in extension.json; see SiteConfig::registerExtensionModule()
14 * and
15 * https://www.mediawiki.org/wiki/Manual:Extension.json/Schema#ParsoidModules
16 *
17 * Implementing an ExtensionModule should only be done by Parsoid-internal
18 * extensions.  If you are implementing a Parsoid module in an extension
19 * and have an `extension.json`, you should use that to specify your
20 * module configuration.
21 */
22interface ExtensionModule {
23
24    /**
25     * Return information about this extension module.
26     *
27     * The structure of the return value is enforced by
28     * `moduleconfig.schema.json`, in this directory.
29     *
30     * @see https://www.mediawiki.org/wiki/Parsoid/Internals/Module_Configuration_Schema
31     * @return array{name:string}
32     */
33    public function getConfig(): array;
34
35}