Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
90.91% covered (success)
90.91%
10 / 11
88.89% covered (warning)
88.89%
8 / 9
CRAP
0.00% covered (danger)
0.00%
0 / 1
PageLinksTable
90.91% covered (success)
90.91%
10 / 11
88.89% covered (warning)
88.89%
8 / 9
9.06
0.00% covered (danger)
0.00%
0 / 1
 __construct
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
1
 setParserOutput
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getTableName
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getFromField
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getNamespaceField
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getTitleField
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getFromNamespaceField
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getTargetIdField
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 linksTargetNormalizationStage
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace MediaWiki\Deferred\LinksUpdate;
4
5use MediaWiki\Config\Config;
6use MediaWiki\Config\ServiceOptions;
7use MediaWiki\MainConfigNames;
8use MediaWiki\Parser\ParserOutput;
9
10/**
11 * pagelinks
12 */
13class PageLinksTable extends GenericPageLinksTable {
14    private const CONSTRUCTOR_OPTIONS = [
15        MainConfigNames::PageLinksSchemaMigrationStage,
16    ];
17
18    /** @var int */
19    private $migrationStage;
20
21    public function __construct( Config $config ) {
22        $options = new ServiceOptions( self::CONSTRUCTOR_OPTIONS, $config );
23        $options->assertRequiredOptions( self::CONSTRUCTOR_OPTIONS );
24
25        $this->migrationStage = $options->get( MainConfigNames::PageLinksSchemaMigrationStage );
26    }
27
28    public function setParserOutput( ParserOutput $parserOutput ) {
29        $this->newLinks = $parserOutput->getLinks();
30    }
31
32    protected function getTableName() {
33        return 'pagelinks';
34    }
35
36    protected function getFromField() {
37        return 'pl_from';
38    }
39
40    protected function getNamespaceField() {
41        return 'pl_namespace';
42    }
43
44    protected function getTitleField() {
45        return 'pl_title';
46    }
47
48    protected function getFromNamespaceField() {
49        return 'pl_from_namespace';
50    }
51
52    protected function getTargetIdField() {
53        return 'pl_target_id';
54    }
55
56    /**
57     * Normalization stage of the links table (see T222224)
58     * @return int
59     */
60    protected function linksTargetNormalizationStage(): int {
61        return $this->migrationStage;
62    }
63}