@@ -7,16 +7,16 @@ |
||
7 | 7 | * |
8 | 8 | * @return bool |
9 | 9 | */ |
10 | - public static function onCreateSchema( DatabaseUpdater $updater ) { |
|
11 | - $updater->addExtensionTable( 'wbqev_dump_information', __DIR__ . '/sql/create_wbqev_dump_information.sql' ); |
|
12 | - $updater->addExtensionTable( 'wbqev_external_data', __DIR__ . '/sql/create_wbqev_external_data.sql' ); |
|
13 | - $updater->addExtensionTable( 'wbqev_identifier_properties', __DIR__ . '/sql/create_wbqev_identifier_properties.sql' ); |
|
10 | + public static function onCreateSchema(DatabaseUpdater $updater) { |
|
11 | + $updater->addExtensionTable('wbqev_dump_information', __DIR__.'/sql/create_wbqev_dump_information.sql'); |
|
12 | + $updater->addExtensionTable('wbqev_external_data', __DIR__.'/sql/create_wbqev_external_data.sql'); |
|
13 | + $updater->addExtensionTable('wbqev_identifier_properties', __DIR__.'/sql/create_wbqev_identifier_properties.sql'); |
|
14 | 14 | |
15 | 15 | return true; |
16 | 16 | } |
17 | 17 | |
18 | - public static function onUnitTestsList( &$paths ) { |
|
19 | - $paths[] = __DIR__ . '/tests/phpunit'; |
|
18 | + public static function onUnitTestsList(&$paths) { |
|
19 | + $paths[] = __DIR__.'/tests/phpunit'; |
|
20 | 20 | return true; |
21 | 21 | } |
22 | 22 |
@@ -30,9 +30,9 @@ discard block |
||
30 | 30 | * @throws InvalidArgumentException |
31 | 31 | * @return string One of the ComparisonResult::STATUS_... constants. |
32 | 32 | */ |
33 | - public function compare( DataValue $value, DataValue $comparativeValue ) { |
|
34 | - if ( !$this->canCompare( $value, $comparativeValue ) ) { |
|
35 | - throw new InvalidArgumentException( 'Given values can not be compared using this comparer.' ); |
|
33 | + public function compare(DataValue $value, DataValue $comparativeValue) { |
|
34 | + if (!$this->canCompare($value, $comparativeValue)) { |
|
35 | + throw new InvalidArgumentException('Given values can not be compared using this comparer.'); |
|
36 | 36 | } |
37 | 37 | |
38 | 38 | /** |
@@ -42,38 +42,38 @@ discard block |
||
42 | 42 | |
43 | 43 | $result = ComparisonResult::STATUS_MISMATCH; |
44 | 44 | |
45 | - if ( !preg_match( '/^([-+]?)(\d*)((\d{4}\b).*)/', $value->getTime(), $localMatches ) |
|
46 | - || !preg_match( '/^([-+]?)(\d*)((\d{4}\b).*)/', $comparativeValue->getTime(), $externalMatches ) |
|
45 | + if (!preg_match('/^([-+]?)(\d*)((\d{4}\b).*)/', $value->getTime(), $localMatches) |
|
46 | + || !preg_match('/^([-+]?)(\d*)((\d{4}\b).*)/', $comparativeValue->getTime(), $externalMatches) |
|
47 | 47 | ) { |
48 | 48 | return ComparisonResult::STATUS_MISMATCH; |
49 | 49 | } |
50 | - list( , $localSign, $localYearHigh, $localMwTime, $localYearLow ) = $localMatches; |
|
51 | - list( , $externalSign, $externalYearHigh, $externalMwTime, $externalYearLow ) = $externalMatches; |
|
52 | - if ( $localSign !== $externalSign && ( $localYearHigh . $localYearLow !== '0000' |
|
53 | - || $externalYearHigh . $externalYearLow !== '0000' ) |
|
50 | + list(, $localSign, $localYearHigh, $localMwTime, $localYearLow) = $localMatches; |
|
51 | + list(, $externalSign, $externalYearHigh, $externalMwTime, $externalYearLow) = $externalMatches; |
|
52 | + if ($localSign !== $externalSign && ($localYearHigh.$localYearLow !== '0000' |
|
53 | + || $externalYearHigh.$externalYearLow !== '0000') |
|
54 | 54 | ) { |
55 | 55 | return ComparisonResult::STATUS_MISMATCH; |
56 | 56 | } |
57 | 57 | |
58 | 58 | try { |
59 | - $localTimestamp = new MWTimestamp( $localMwTime ); |
|
60 | - $externalTimestamp = new MWTimestamp( $externalMwTime ); |
|
61 | - $diff = $localTimestamp->diff( $externalTimestamp ); |
|
62 | - $diff->y += abs( $localYearHigh - $externalYearHigh ) * 10000; |
|
59 | + $localTimestamp = new MWTimestamp($localMwTime); |
|
60 | + $externalTimestamp = new MWTimestamp($externalMwTime); |
|
61 | + $diff = $localTimestamp->diff($externalTimestamp); |
|
62 | + $diff->y += abs($localYearHigh - $externalYearHigh) * 10000; |
|
63 | 63 | |
64 | - if ( $value->getPrecision() === $comparativeValue->getPrecision() |
|
65 | - && $this->resultOfDiffWithPrecision( $diff, $value->getPrecision() ) |
|
64 | + if ($value->getPrecision() === $comparativeValue->getPrecision() |
|
65 | + && $this->resultOfDiffWithPrecision($diff, $value->getPrecision()) |
|
66 | 66 | ) { |
67 | 67 | $result = ComparisonResult::STATUS_MATCH; |
68 | 68 | } elseif ( |
69 | 69 | $this->resultOfDiffWithPrecision( |
70 | 70 | $diff, |
71 | - min( $value->getPrecision(), $comparativeValue->getPrecision() ) |
|
71 | + min($value->getPrecision(), $comparativeValue->getPrecision()) |
|
72 | 72 | ) |
73 | 73 | ) { |
74 | 74 | $result = ComparisonResult::STATUS_PARTIAL_MATCH; |
75 | 75 | } |
76 | - } catch ( TimestampException $ex ) { |
|
76 | + } catch (TimestampException $ex) { |
|
77 | 77 | } |
78 | 78 | |
79 | 79 | return $result; |
@@ -87,10 +87,10 @@ discard block |
||
87 | 87 | * |
88 | 88 | * @return bool |
89 | 89 | */ |
90 | - private function resultOfDiffWithPrecision( DateInterval $diff, $precision ) { |
|
90 | + private function resultOfDiffWithPrecision(DateInterval $diff, $precision) { |
|
91 | 91 | $result = true; |
92 | 92 | |
93 | - switch ( $precision ) { |
|
93 | + switch ($precision) { |
|
94 | 94 | case TimeValue::PRECISION_SECOND: |
95 | 95 | $result = $diff->s === 0; |
96 | 96 | // Fall through with no break/return. This is critical for this algorithm. |
@@ -134,10 +134,10 @@ discard block |
||
134 | 134 | * |
135 | 135 | * @return ValueParser |
136 | 136 | */ |
137 | - protected function getExternalValueParser( DumpMetaInformation $dumpMetaInformation ) { |
|
137 | + protected function getExternalValueParser(DumpMetaInformation $dumpMetaInformation) { |
|
138 | 138 | $parserOptions = new ParserOptions(); |
139 | - $parserOptions->setOption( ValueParser::OPT_LANG, $dumpMetaInformation->getLanguageCode() ); |
|
140 | - $timeParserFactory = new TimeParserFactory( $parserOptions ); |
|
139 | + $parserOptions->setOption(ValueParser::OPT_LANG, $dumpMetaInformation->getLanguageCode()); |
|
140 | + $timeParserFactory = new TimeParserFactory($parserOptions); |
|
141 | 141 | |
142 | 142 | return $timeParserFactory->getTimeParser(); |
143 | 143 | } |
@@ -150,7 +150,7 @@ discard block |
||
150 | 150 | * |
151 | 151 | * @return bool |
152 | 152 | */ |
153 | - public function canCompare( DataValue $value, DataValue $comparativeValue ) { |
|
153 | + public function canCompare(DataValue $value, DataValue $comparativeValue) { |
|
154 | 154 | return $value instanceof TimeValue && $comparativeValue instanceof TimeValue; |
155 | 155 | } |
156 | 156 |
@@ -11,6 +11,6 @@ |
||
11 | 11 | |
12 | 12 | /** English (English) */ |
13 | 13 | $specialPageAliases['en'] = array( |
14 | - 'CrossCheck' => array( 'CrossCheck', 'Cross Check' ), |
|
15 | - 'ExternalDatabases' => array( 'ExternalDatabases', 'ExternalDbs', 'External Dbs' ), |
|
14 | + 'CrossCheck' => array('CrossCheck', 'Cross Check'), |
|
15 | + 'ExternalDatabases' => array('ExternalDatabases', 'ExternalDbs', 'External Dbs'), |
|
16 | 16 | ); |
17 | 17 | \ No newline at end of file |
@@ -54,10 +54,10 @@ discard block |
||
54 | 54 | TermLookup $termLookup, |
55 | 55 | EntityIdHtmlLinkFormatterFactory $entityIdHtmlLinkFormatterFactory, |
56 | 56 | DumpMetaInformationLookup $dumpMetaInformationRepo ) { |
57 | - parent::__construct( 'ExternalDatabases' ); |
|
57 | + parent::__construct('ExternalDatabases'); |
|
58 | 58 | |
59 | 59 | $this->entityIdLinkFormatter = $entityIdHtmlLinkFormatterFactory->getEntityIdFormatter( |
60 | - new LanguageLabelDescriptionLookup( $termLookup, $this->getLanguage()->getCode() ) |
|
60 | + new LanguageLabelDescriptionLookup($termLookup, $this->getLanguage()->getCode()) |
|
61 | 61 | ); |
62 | 62 | |
63 | 63 | $this->dumpMetaInformationRepo = $dumpMetaInformationRepo; |
@@ -78,7 +78,7 @@ discard block |
||
78 | 78 | * @return string |
79 | 79 | */ |
80 | 80 | public function getDescription() { |
81 | - return $this->msg( 'wbqev-externaldbs' )->text(); |
|
81 | + return $this->msg('wbqev-externaldbs')->text(); |
|
82 | 82 | } |
83 | 83 | |
84 | 84 | /** |
@@ -86,51 +86,51 @@ discard block |
||
86 | 86 | * |
87 | 87 | * @param string|null $subPage |
88 | 88 | */ |
89 | - public function execute( $subPage ) { |
|
89 | + public function execute($subPage) { |
|
90 | 90 | $out = $this->getOutput(); |
91 | 91 | |
92 | 92 | $this->setHeaders(); |
93 | 93 | |
94 | 94 | $out->addHTML( |
95 | - Html::openElement( 'p' ) |
|
96 | - . $this->msg( 'wbqev-externaldbs-instructions' )->parse() |
|
97 | - . Html::closeElement( 'p' ) |
|
98 | - . Html::openElement( 'h3' ) |
|
99 | - . $this->msg( 'wbqev-externaldbs-overview-headline' )->parse() |
|
100 | - . Html::closeElement( 'h3' ) |
|
95 | + Html::openElement('p') |
|
96 | + . $this->msg('wbqev-externaldbs-instructions')->parse() |
|
97 | + . Html::closeElement('p') |
|
98 | + . Html::openElement('h3') |
|
99 | + . $this->msg('wbqev-externaldbs-overview-headline')->parse() |
|
100 | + . Html::closeElement('h3') |
|
101 | 101 | ); |
102 | 102 | |
103 | 103 | $dumps = $this->dumpMetaInformationRepo->getAll(); |
104 | - if ( count( $dumps ) > 0 ) { |
|
104 | + if (count($dumps) > 0) { |
|
105 | 105 | $groupedDumpMetaInformation = array(); |
106 | - foreach ( $dumps as $dump ) { |
|
106 | + foreach ($dumps as $dump) { |
|
107 | 107 | $sourceItemId = $dump->getSourceItemId()->getSerialization(); |
108 | 108 | $groupedDumpMetaInformation[$sourceItemId][] = $dump; |
109 | 109 | } |
110 | 110 | |
111 | 111 | $table = new HtmlTableBuilder( |
112 | 112 | array( |
113 | - $this->msg( 'wbqev-externaldbs-name' )->escaped(), |
|
114 | - $this->msg( 'wbqev-externaldbs-id' )->escaped(), |
|
115 | - $this->msg( 'wbqev-externaldbs-import-date' )->escaped(), |
|
116 | - $this->msg( 'wbqev-externaldbs-language' )->escaped(), |
|
117 | - $this->msg( 'wbqev-externaldbs-source-urls' )->escaped(), |
|
118 | - $this->msg( 'wbqev-externaldbs-size' )->escaped(), |
|
119 | - $this->msg( 'wbqev-externaldbs-license' )->escaped() |
|
113 | + $this->msg('wbqev-externaldbs-name')->escaped(), |
|
114 | + $this->msg('wbqev-externaldbs-id')->escaped(), |
|
115 | + $this->msg('wbqev-externaldbs-import-date')->escaped(), |
|
116 | + $this->msg('wbqev-externaldbs-language')->escaped(), |
|
117 | + $this->msg('wbqev-externaldbs-source-urls')->escaped(), |
|
118 | + $this->msg('wbqev-externaldbs-size')->escaped(), |
|
119 | + $this->msg('wbqev-externaldbs-license')->escaped() |
|
120 | 120 | ), |
121 | 121 | true |
122 | 122 | ); |
123 | 123 | |
124 | - foreach ( $groupedDumpMetaInformation as $dumpMetaInformation ) { |
|
125 | - $table->appendRows( $this->getRowGroup( $dumpMetaInformation ) ); |
|
124 | + foreach ($groupedDumpMetaInformation as $dumpMetaInformation) { |
|
125 | + $table->appendRows($this->getRowGroup($dumpMetaInformation)); |
|
126 | 126 | } |
127 | 127 | |
128 | - $out->addHTML( $table->toHtml() ); |
|
128 | + $out->addHTML($table->toHtml()); |
|
129 | 129 | } else { |
130 | 130 | $out->addHTML( |
131 | - Html::openElement( 'p' ) |
|
132 | - . $this->msg( 'wbqev-externaldbs-no-databases' )->escaped() |
|
133 | - . Html::closeElement( 'p' ) |
|
131 | + Html::openElement('p') |
|
132 | + . $this->msg('wbqev-externaldbs-no-databases')->escaped() |
|
133 | + . Html::closeElement('p') |
|
134 | 134 | ); |
135 | 135 | } |
136 | 136 | } |
@@ -142,12 +142,12 @@ discard block |
||
142 | 142 | * |
143 | 143 | * @return array |
144 | 144 | */ |
145 | - private function getRowGroup( array $dumpMetaInformationGroup ) { |
|
145 | + private function getRowGroup(array $dumpMetaInformationGroup) { |
|
146 | 146 | $rows = array(); |
147 | 147 | |
148 | - foreach ( $dumpMetaInformationGroup as $dumpMetaInformation ) { |
|
148 | + foreach ($dumpMetaInformationGroup as $dumpMetaInformation) { |
|
149 | 149 | $dumpId = $dumpMetaInformation->getDumpId(); |
150 | - $importDate = $this->getLanguage()->timeanddate( $dumpMetaInformation->getImportDate() ); |
|
150 | + $importDate = $this->getLanguage()->timeanddate($dumpMetaInformation->getImportDate()); |
|
151 | 151 | $language = Language::fetchLanguageName( |
152 | 152 | $dumpMetaInformation->getLanguageCode(), |
153 | 153 | $this->getLanguage()->getCode() |
@@ -156,23 +156,23 @@ discard block |
||
156 | 156 | $dumpMetaInformation->getSourceUrl(), |
157 | 157 | $dumpMetaInformation->getSourceUrl() |
158 | 158 | ); |
159 | - $size = $this->getLanguage()->formatSize( $dumpMetaInformation->getSize() ); |
|
160 | - $license = $this->entityIdLinkFormatter->formatEntityId( $dumpMetaInformation->getLicenseItemId() ); |
|
159 | + $size = $this->getLanguage()->formatSize($dumpMetaInformation->getSize()); |
|
160 | + $license = $this->entityIdLinkFormatter->formatEntityId($dumpMetaInformation->getLicenseItemId()); |
|
161 | 161 | $rows[] = array( |
162 | - new HtmlTableCellBuilder( $dumpId ), |
|
163 | - new HtmlTableCellBuilder( $importDate ), |
|
164 | - new HtmlTableCellBuilder( $language ), |
|
165 | - new HtmlTableCellBuilder( $sourceUrl, array(), true ), |
|
166 | - new HtmlTableCellBuilder( $size ), |
|
167 | - new HtmlTableCellBuilder( $license, array(), true ) |
|
162 | + new HtmlTableCellBuilder($dumpId), |
|
163 | + new HtmlTableCellBuilder($importDate), |
|
164 | + new HtmlTableCellBuilder($language), |
|
165 | + new HtmlTableCellBuilder($sourceUrl, array(), true), |
|
166 | + new HtmlTableCellBuilder($size), |
|
167 | + new HtmlTableCellBuilder($license, array(), true) |
|
168 | 168 | ); |
169 | 169 | } |
170 | 170 | |
171 | 171 | array_unshift( |
172 | 172 | $rows[0], |
173 | 173 | new HtmlTableCellBuilder( |
174 | - $this->entityIdLinkFormatter->formatEntityId( $dumpMetaInformationGroup[0]->getSourceItemId() ), |
|
175 | - array( 'rowspan' => (string)count( $dumpMetaInformationGroup ) ), |
|
174 | + $this->entityIdLinkFormatter->formatEntityId($dumpMetaInformationGroup[0]->getSourceItemId()), |
|
175 | + array('rowspan' => (string)count($dumpMetaInformationGroup)), |
|
176 | 176 | true |
177 | 177 | ) |
178 | 178 | ); |
@@ -20,7 +20,7 @@ discard block |
||
20 | 20 | * @return DumpMetaInformation[] |
21 | 21 | * @throws \InvalidArgumentException |
22 | 22 | */ |
23 | - public function getWithIds( array $dumpIds ); |
|
23 | + public function getWithIds(array $dumpIds); |
|
24 | 24 | |
25 | 25 | /** |
26 | 26 | * Gets DumpMetaInformation for specific identifier properties from database |
@@ -30,7 +30,7 @@ discard block |
||
30 | 30 | * |
31 | 31 | * @return DumpMetaInformation[] |
32 | 32 | */ |
33 | - public function getWithIdentifierProperties( array $identifierPropertyIds ); |
|
33 | + public function getWithIdentifierProperties(array $identifierPropertyIds); |
|
34 | 34 | |
35 | 35 | /** |
36 | 36 | * Gets all DumpMetaInformation from database |
@@ -51,13 +51,13 @@ discard block |
||
51 | 51 | public function import() { |
52 | 52 | $dumpIds = $this->insertMetaInformation(); |
53 | 53 | |
54 | - $this->log( "\nDelete old database entries...\n" ); |
|
54 | + $this->log("\nDelete old database entries...\n"); |
|
55 | 55 | |
56 | - foreach ( $dumpIds as $dumpId ) { |
|
57 | - $this->externalDataRepo->deleteOfDump( $dumpId, $this->importSettings->getBatchSize() ); |
|
56 | + foreach ($dumpIds as $dumpId) { |
|
57 | + $this->externalDataRepo->deleteOfDump($dumpId, $this->importSettings->getBatchSize()); |
|
58 | 58 | } |
59 | 59 | |
60 | - $this->log( "\n" ); |
|
60 | + $this->log("\n"); |
|
61 | 61 | |
62 | 62 | $this->insertExternalValues(); |
63 | 63 | } |
@@ -68,54 +68,54 @@ discard block |
||
68 | 68 | * @return array |
69 | 69 | */ |
70 | 70 | protected function insertMetaInformation() { |
71 | - $this->log( "Insert new dump meta information\n" ); |
|
71 | + $this->log("Insert new dump meta information\n"); |
|
72 | 72 | |
73 | - $csvFile = fopen( $this->importSettings->getDumpInformationFilePath(), 'rb' ); |
|
74 | - if( !$csvFile ) { |
|
75 | - exit( 'Error while reading CSV file.' ); |
|
73 | + $csvFile = fopen($this->importSettings->getDumpInformationFilePath(), 'rb'); |
|
74 | + if (!$csvFile) { |
|
75 | + exit('Error while reading CSV file.'); |
|
76 | 76 | } |
77 | 77 | |
78 | 78 | $i = 0; |
79 | 79 | $dumpIds = array(); |
80 | - while ( $data = fgetcsv( $csvFile ) ) { |
|
80 | + while ($data = fgetcsv($csvFile)) { |
|
81 | 81 | $identifierPropertyIds = array_map( |
82 | - function ( $propertyId ) { |
|
83 | - return new PropertyId( $propertyId ); |
|
82 | + function($propertyId) { |
|
83 | + return new PropertyId($propertyId); |
|
84 | 84 | }, |
85 | - json_decode( $data[2] ) |
|
85 | + json_decode($data[2]) |
|
86 | 86 | ); |
87 | 87 | try { |
88 | 88 | $dumpMetaInformation = new DumpMetaInformation( |
89 | 89 | $data[0], |
90 | - new ItemId( $data[1] ), |
|
90 | + new ItemId($data[1]), |
|
91 | 91 | $identifierPropertyIds, |
92 | 92 | $data[3], |
93 | 93 | $data[4], |
94 | 94 | $data[5], |
95 | - intval( $data[6] ), |
|
96 | - new ItemId( $data[7] ) |
|
95 | + intval($data[6]), |
|
96 | + new ItemId($data[7]) |
|
97 | 97 | ); |
98 | 98 | } |
99 | - catch( \InvalidArgumentException $e ) { |
|
100 | - exit( 'Input file has bad formatted values.' ); |
|
99 | + catch (\InvalidArgumentException $e) { |
|
100 | + exit('Input file has bad formatted values.'); |
|
101 | 101 | } |
102 | 102 | $dumpIds[] = $dumpMetaInformation->getDumpId(); |
103 | 103 | |
104 | 104 | try { |
105 | - $this->dumpMetaInformationStore->save( $dumpMetaInformation ); |
|
105 | + $this->dumpMetaInformationStore->save($dumpMetaInformation); |
|
106 | 106 | } |
107 | - catch( \DBError $e ) { |
|
108 | - exit( 'Unknown database error occurred.' ); |
|
107 | + catch (\DBError $e) { |
|
108 | + exit('Unknown database error occurred.'); |
|
109 | 109 | } |
110 | 110 | |
111 | 111 | $i++; |
112 | - $this->log( "\r\033[K" ); |
|
113 | - $this->log( "$i rows inserted or updated" ); |
|
112 | + $this->log("\r\033[K"); |
|
113 | + $this->log("$i rows inserted or updated"); |
|
114 | 114 | } |
115 | 115 | |
116 | - fclose( $csvFile ); |
|
116 | + fclose($csvFile); |
|
117 | 117 | |
118 | - $this->log( "\n" ); |
|
118 | + $this->log("\n"); |
|
119 | 119 | |
120 | 120 | return $dumpIds; |
121 | 121 | } |
@@ -124,32 +124,32 @@ discard block |
||
124 | 124 | * Inserts external values stored in csv file into database |
125 | 125 | */ |
126 | 126 | private function insertExternalValues() { |
127 | - $this->log( "Insert new data values\n" ); |
|
127 | + $this->log("Insert new data values\n"); |
|
128 | 128 | |
129 | - $csvFile = fopen( $this->importSettings->getExternalValuesFilePath(), 'rb' ); |
|
130 | - if( !$csvFile ) { |
|
131 | - exit( 'Error while reading CSV file.' ); |
|
129 | + $csvFile = fopen($this->importSettings->getExternalValuesFilePath(), 'rb'); |
|
130 | + if (!$csvFile) { |
|
131 | + exit('Error while reading CSV file.'); |
|
132 | 132 | } |
133 | 133 | |
134 | 134 | $i = 0; |
135 | 135 | $accumulator = array(); |
136 | - while ( true ) { |
|
137 | - $data = fgetcsv( $csvFile ); |
|
138 | - if ( $data === false || ++$i % $this->importSettings->getBatchSize() === 0 ) { |
|
136 | + while (true) { |
|
137 | + $data = fgetcsv($csvFile); |
|
138 | + if ($data === false || ++$i % $this->importSettings->getBatchSize() === 0) { |
|
139 | 139 | try { |
140 | - $this->externalDataRepo->insertBatch( $accumulator ); |
|
140 | + $this->externalDataRepo->insertBatch($accumulator); |
|
141 | 141 | } |
142 | - catch( \DBError $e ) { |
|
143 | - exit( 'Unknown database error occurred.' ); |
|
142 | + catch (\DBError $e) { |
|
143 | + exit('Unknown database error occurred.'); |
|
144 | 144 | } |
145 | 145 | wfGetLBFactory()->waitForReplication(); |
146 | 146 | |
147 | - $this->log( "\r\033[K" ); |
|
148 | - $this->log( "$i rows inserted" ); |
|
147 | + $this->log("\r\033[K"); |
|
148 | + $this->log("$i rows inserted"); |
|
149 | 149 | |
150 | 150 | $accumulator = array(); |
151 | 151 | |
152 | - if ( $data === false ) { |
|
152 | + if ($data === false) { |
|
153 | 153 | break; |
154 | 154 | } |
155 | 155 | } |
@@ -157,16 +157,16 @@ discard block |
||
157 | 157 | $accumulator[] = $data; |
158 | 158 | } |
159 | 159 | |
160 | - fclose( $csvFile ); |
|
160 | + fclose($csvFile); |
|
161 | 161 | |
162 | - $this->log( "\n" ); |
|
162 | + $this->log("\n"); |
|
163 | 163 | } |
164 | 164 | |
165 | 165 | /** |
166 | 166 | * @param string $text |
167 | 167 | */ |
168 | - private function log( $text ) { |
|
169 | - if ( !$this->importSettings->isQuiet() ) { |
|
168 | + private function log($text) { |
|
169 | + if (!$this->importSettings->isQuiet()) { |
|
170 | 170 | print $text; |
171 | 171 | } |
172 | 172 | } |
@@ -95,16 +95,14 @@ discard block |
||
95 | 95 | intval( $data[6] ), |
96 | 96 | new ItemId( $data[7] ) |
97 | 97 | ); |
98 | - } |
|
99 | - catch( \InvalidArgumentException $e ) { |
|
98 | + } catch( \InvalidArgumentException $e ) { |
|
100 | 99 | exit( 'Input file has bad formatted values.' ); |
101 | 100 | } |
102 | 101 | $dumpIds[] = $dumpMetaInformation->getDumpId(); |
103 | 102 | |
104 | 103 | try { |
105 | 104 | $this->dumpMetaInformationStore->save( $dumpMetaInformation ); |
106 | - } |
|
107 | - catch( \DBError $e ) { |
|
105 | + } catch( \DBError $e ) { |
|
108 | 106 | exit( 'Unknown database error occurred.' ); |
109 | 107 | } |
110 | 108 | |
@@ -138,8 +136,7 @@ discard block |
||
138 | 136 | if ( $data === false || ++$i % $this->importSettings->getBatchSize() === 0 ) { |
139 | 137 | try { |
140 | 138 | $this->externalDataRepo->insertBatch( $accumulator ); |
141 | - } |
|
142 | - catch( \DBError $e ) { |
|
139 | + } catch( \DBError $e ) { |
|
143 | 140 | exit( 'Unknown database error occurred.' ); |
144 | 141 | } |
145 | 142 | wfGetLBFactory()->waitForReplication(); |
@@ -34,17 +34,17 @@ discard block |
||
34 | 34 | * @throws InvalidArgumentException |
35 | 35 | * @return ReferenceResult |
36 | 36 | */ |
37 | - public function checkForReferences( Statement $statement, PropertyId $identifierPropertyId, $externalId, DumpMetaInformation $dumpMetaInformation ) { |
|
38 | - Assert::parameterType( 'string', $externalId, '$externalId' ); |
|
37 | + public function checkForReferences(Statement $statement, PropertyId $identifierPropertyId, $externalId, DumpMetaInformation $dumpMetaInformation) { |
|
38 | + Assert::parameterType('string', $externalId, '$externalId'); |
|
39 | 39 | |
40 | - if ( count( $statement->getReferences() ) === 0 ) { |
|
40 | + if (count($statement->getReferences()) === 0) { |
|
41 | 41 | $status = ReferenceResult::STATUS_REFERENCES_MISSING; |
42 | 42 | } else { |
43 | 43 | $status = ReferenceResult::STATUS_REFERENCES_STATED; |
44 | 44 | } |
45 | 45 | |
46 | - $externalReference = $this->buildReference( $identifierPropertyId, $externalId, $dumpMetaInformation ); |
|
47 | - return new ReferenceResult( $status, $externalReference ); |
|
46 | + $externalReference = $this->buildReference($identifierPropertyId, $externalId, $dumpMetaInformation); |
|
47 | + return new ReferenceResult($status, $externalReference); |
|
48 | 48 | } |
49 | 49 | |
50 | 50 | /** |
@@ -55,17 +55,17 @@ discard block |
||
55 | 55 | * @param DumpMetaInformation $dumpMetaInformation |
56 | 56 | * @return Reference |
57 | 57 | */ |
58 | - private function buildReference( PropertyId $identifierPropertyId, $externalId, DumpMetaInformation $dumpMetaInformation ) { |
|
58 | + private function buildReference(PropertyId $identifierPropertyId, $externalId, DumpMetaInformation $dumpMetaInformation) { |
|
59 | 59 | global $wgWBQEVStatedInPID; |
60 | 60 | |
61 | 61 | $sourceItemId = $dumpMetaInformation->getSourceItemId(); |
62 | 62 | $statedInAuthoritySnak = new PropertyValueSnak( |
63 | - new PropertyId( $wgWBQEVStatedInPID ), |
|
64 | - new EntityIdValue( $sourceItemId ) |
|
63 | + new PropertyId($wgWBQEVStatedInPID), |
|
64 | + new EntityIdValue($sourceItemId) |
|
65 | 65 | ); |
66 | 66 | $authorityWithExternalIdSnak = new PropertyValueSnak( |
67 | 67 | $identifierPropertyId, |
68 | - new StringValue( $externalId ) |
|
68 | + new StringValue($externalId) |
|
69 | 69 | ); |
70 | 70 | |
71 | 71 | return new Reference( |
@@ -29,15 +29,15 @@ discard block |
||
29 | 29 | * @return DumpMetaInformation[] |
30 | 30 | * @throws InvalidArgumentException |
31 | 31 | */ |
32 | - public function getWithIds( array $dumpIds ) { |
|
33 | - foreach ( $dumpIds as $dumpId ) { |
|
34 | - if ( !is_string( $dumpId ) ) { |
|
35 | - throw new InvalidArgumentException( '$dumpIds must contain only strings.' ); |
|
32 | + public function getWithIds(array $dumpIds) { |
|
33 | + foreach ($dumpIds as $dumpId) { |
|
34 | + if (!is_string($dumpId)) { |
|
35 | + throw new InvalidArgumentException('$dumpIds must contain only strings.'); |
|
36 | 36 | } |
37 | 37 | } |
38 | 38 | |
39 | - if( count( $dumpIds ) > 0 ) { |
|
40 | - $db = wfGetDB( DB_REPLICA ); |
|
39 | + if (count($dumpIds) > 0) { |
|
40 | + $db = wfGetDB(DB_REPLICA); |
|
41 | 41 | $result = $db->select( |
42 | 42 | array( |
43 | 43 | self::META_TABLE_NAME, |
@@ -57,7 +57,7 @@ discard block |
||
57 | 57 | ) |
58 | 58 | ); |
59 | 59 | |
60 | - return $this->buildDumpMetaInformationFromResult( $result ); |
|
60 | + return $this->buildDumpMetaInformationFromResult($result); |
|
61 | 61 | } |
62 | 62 | |
63 | 63 | return array(); |
@@ -72,17 +72,17 @@ discard block |
||
72 | 72 | * @throws InvalidArgumentException |
73 | 73 | * @return DumpMetaInformation[] |
74 | 74 | */ |
75 | - public function getWithIdentifierProperties( array $identifierPropertyIds ) { |
|
76 | - foreach ( $identifierPropertyIds as $propertyId ) { |
|
77 | - if ( !( $propertyId instanceof PropertyId ) ) { |
|
78 | - throw new InvalidArgumentException( '$identifierProperties must contain only PropertyIds.' ); |
|
75 | + public function getWithIdentifierProperties(array $identifierPropertyIds) { |
|
76 | + foreach ($identifierPropertyIds as $propertyId) { |
|
77 | + if (!($propertyId instanceof PropertyId)) { |
|
78 | + throw new InvalidArgumentException('$identifierProperties must contain only PropertyIds.'); |
|
79 | 79 | } |
80 | 80 | } |
81 | 81 | |
82 | - if( count( $identifierPropertyIds ) > 0 ) { |
|
83 | - $db = wfGetDB( DB_REPLICA ); |
|
82 | + if (count($identifierPropertyIds) > 0) { |
|
83 | + $db = wfGetDB(DB_REPLICA); |
|
84 | 84 | $identifierPropertyIds = array_map( |
85 | - function( PropertyId $id ) { |
|
85 | + function(PropertyId $id) { |
|
86 | 86 | return $id->getSerialization(); |
87 | 87 | }, |
88 | 88 | $identifierPropertyIds |
@@ -95,13 +95,13 @@ discard block |
||
95 | 95 | ) |
96 | 96 | ); |
97 | 97 | $dumpIds = array(); |
98 | - foreach ( $result as $row ) { |
|
99 | - if ( !in_array( $row->dump_id, $dumpIds ) ) { |
|
98 | + foreach ($result as $row) { |
|
99 | + if (!in_array($row->dump_id, $dumpIds)) { |
|
100 | 100 | $dumpIds[] = $row->dump_id; |
101 | 101 | } |
102 | 102 | } |
103 | 103 | |
104 | - return $this->getWithIds( $dumpIds ); |
|
104 | + return $this->getWithIds($dumpIds); |
|
105 | 105 | } |
106 | 106 | |
107 | 107 | return array(); |
@@ -114,7 +114,7 @@ discard block |
||
114 | 114 | * @return DumpMetaInformation[] |
115 | 115 | */ |
116 | 116 | public function getAll() { |
117 | - $db = wfGetDB( DB_REPLICA ); |
|
117 | + $db = wfGetDB(DB_REPLICA); |
|
118 | 118 | $result = $db->select( |
119 | 119 | array( |
120 | 120 | self::META_TABLE_NAME, |
@@ -132,7 +132,7 @@ discard block |
||
132 | 132 | ) |
133 | 133 | ); |
134 | 134 | |
135 | - return $this->buildDumpMetaInformationFromResult( $result ); |
|
135 | + return $this->buildDumpMetaInformationFromResult($result); |
|
136 | 136 | } |
137 | 137 | |
138 | 138 | /** |
@@ -140,34 +140,34 @@ discard block |
||
140 | 140 | * @return null|array |
141 | 141 | * @throws UnexpectedValueException |
142 | 142 | */ |
143 | - private function buildDumpMetaInformationFromResult( ResultWrapper $result ) { |
|
143 | + private function buildDumpMetaInformationFromResult(ResultWrapper $result) { |
|
144 | 144 | $aggregatedRows = array(); |
145 | - foreach ( $result as $row ) { |
|
146 | - if ( array_key_exists( $row->id, $aggregatedRows ) ) { |
|
147 | - $propertyId = new PropertyId( $row->identifier_pid ); |
|
145 | + foreach ($result as $row) { |
|
146 | + if (array_key_exists($row->id, $aggregatedRows)) { |
|
147 | + $propertyId = new PropertyId($row->identifier_pid); |
|
148 | 148 | $aggregatedRows[$row->id]->identifier_pid[] = $propertyId; |
149 | 149 | } else { |
150 | - if ( $row->identifier_pid !== null ) { |
|
151 | - $propertyId = new PropertyId( $row->identifier_pid ); |
|
152 | - $row->identifier_pid = array( $propertyId ); |
|
150 | + if ($row->identifier_pid !== null) { |
|
151 | + $propertyId = new PropertyId($row->identifier_pid); |
|
152 | + $row->identifier_pid = array($propertyId); |
|
153 | 153 | } |
154 | 154 | $aggregatedRows[$row->id] = $row; |
155 | 155 | } |
156 | 156 | } |
157 | 157 | |
158 | 158 | $dumpMetaInformation = array(); |
159 | - foreach ( $aggregatedRows as $row ) { |
|
159 | + foreach ($aggregatedRows as $row) { |
|
160 | 160 | $dumpId = $row->id; |
161 | - $sourceItemId = new ItemId( $row->source_qid ); |
|
162 | - $importDate = wfTimestamp( TS_MW, $row->import_date ); |
|
161 | + $sourceItemId = new ItemId($row->source_qid); |
|
162 | + $importDate = wfTimestamp(TS_MW, $row->import_date); |
|
163 | 163 | $language = $row->language; |
164 | 164 | $sourceUrl = $row->source_url; |
165 | 165 | $size = (int)$row->size; |
166 | - $licenseItemId = new ItemId( $row->license_qid ); |
|
166 | + $licenseItemId = new ItemId($row->license_qid); |
|
167 | 167 | $identifierPropertyIds = $row->identifier_pid; |
168 | 168 | |
169 | 169 | $dumpMetaInformation[$row->dump_id] = |
170 | - new DumpMetaInformation( $dumpId, |
|
170 | + new DumpMetaInformation($dumpId, |
|
171 | 171 | $sourceItemId, |
172 | 172 | $identifierPropertyIds, |
173 | 173 | $importDate, |
@@ -186,22 +186,22 @@ discard block |
||
186 | 186 | * |
187 | 187 | * @param DumpMetaInformation $dumpMetaInformation |
188 | 188 | */ |
189 | - public function save( DumpMetaInformation $dumpMetaInformation ) { |
|
190 | - $db = wfGetDB( DB_REPLICA ); |
|
189 | + public function save(DumpMetaInformation $dumpMetaInformation) { |
|
190 | + $db = wfGetDB(DB_REPLICA); |
|
191 | 191 | $dumpId = $dumpMetaInformation->getDumpId(); |
192 | - $accumulator = $this->getDumpInformationFields( $db, $dumpMetaInformation ); |
|
192 | + $accumulator = $this->getDumpInformationFields($db, $dumpMetaInformation); |
|
193 | 193 | |
194 | 194 | $existing = $db->selectRow( |
195 | 195 | self::META_TABLE_NAME, |
196 | - array( 'id' ), |
|
197 | - array( 'id' => $dumpId ) |
|
196 | + array('id'), |
|
197 | + array('id' => $dumpId) |
|
198 | 198 | ); |
199 | 199 | |
200 | - if ( $existing ) { |
|
200 | + if ($existing) { |
|
201 | 201 | $db->update( |
202 | 202 | self::META_TABLE_NAME, |
203 | 203 | $accumulator, |
204 | - array( 'id' => $dumpId ) |
|
204 | + array('id' => $dumpId) |
|
205 | 205 | ); |
206 | 206 | } else { |
207 | 207 | $db->insert( |
@@ -212,12 +212,12 @@ discard block |
||
212 | 212 | |
213 | 213 | $db->delete( |
214 | 214 | self::IDENTIFIER_PROPERTIES_TABLE_NAME, |
215 | - array( 'dump_id' => $dumpId ) |
|
215 | + array('dump_id' => $dumpId) |
|
216 | 216 | ); |
217 | 217 | $db->insert( |
218 | 218 | self::IDENTIFIER_PROPERTIES_TABLE_NAME, |
219 | 219 | array_map( |
220 | - function ( PropertyId $identifierPropertyId ) use ( $dumpId ) { |
|
220 | + function(PropertyId $identifierPropertyId) use ($dumpId) { |
|
221 | 221 | return array( |
222 | 222 | 'dump_id' => $dumpId, |
223 | 223 | 'identifier_pid' => $identifierPropertyId->getSerialization() |
@@ -233,11 +233,11 @@ discard block |
||
233 | 233 | * @param DumpMetaInformation $dumpMetaInformation |
234 | 234 | * @return array |
235 | 235 | */ |
236 | - private function getDumpInformationFields( Database $db, DumpMetaInformation $dumpMetaInformation ) { |
|
236 | + private function getDumpInformationFields(Database $db, DumpMetaInformation $dumpMetaInformation) { |
|
237 | 237 | return array( |
238 | 238 | 'id' => $dumpMetaInformation->getDumpId(), |
239 | 239 | 'source_qid' => $dumpMetaInformation->getSourceItemId()->getSerialization(), |
240 | - 'import_date' => $db->timestamp( $dumpMetaInformation->getImportDate() ), |
|
240 | + 'import_date' => $db->timestamp($dumpMetaInformation->getImportDate()), |
|
241 | 241 | 'language' => $dumpMetaInformation->getLanguageCode(), |
242 | 242 | 'source_url' => $dumpMetaInformation->getSourceUrl(), |
243 | 243 | 'size' => $dumpMetaInformation->getSize(), |
@@ -83,27 +83,27 @@ discard block |
||
83 | 83 | * |
84 | 84 | * @throws InvalidArgumentException |
85 | 85 | */ |
86 | - public function __construct( $dumpId, |
|
86 | + public function __construct($dumpId, |
|
87 | 87 | ItemId $sourceItemId, |
88 | 88 | array $identifierPropertyIds, |
89 | 89 | $importDate, |
90 | 90 | $languageCode, |
91 | 91 | $sourceUrl, |
92 | 92 | $size, |
93 | - ItemId $licenseItemId ) { |
|
93 | + ItemId $licenseItemId) { |
|
94 | 94 | Assert::parameterElementType( |
95 | 95 | PropertyId::class, |
96 | 96 | $identifierPropertyIds, |
97 | 97 | '$identifierPropertyIds' |
98 | 98 | ); |
99 | 99 | |
100 | - $this->setDumpId( $dumpId ); |
|
100 | + $this->setDumpId($dumpId); |
|
101 | 101 | $this->sourceItemId = $sourceItemId; |
102 | 102 | $this->identifierPropertyIds = $identifierPropertyIds; |
103 | - $this->setImportDate( $importDate ); |
|
104 | - $this->setLanguageCode( $languageCode ); |
|
105 | - $this->setSourceUrl( $sourceUrl ); |
|
106 | - $this->setSize( $size ); |
|
103 | + $this->setImportDate($importDate); |
|
104 | + $this->setLanguageCode($languageCode); |
|
105 | + $this->setSourceUrl($sourceUrl); |
|
106 | + $this->setSize($size); |
|
107 | 107 | $this->licenseItemId = $licenseItemId; |
108 | 108 | } |
109 | 109 | |
@@ -168,10 +168,10 @@ discard block |
||
168 | 168 | * |
169 | 169 | * @throws InvalidArgumentException |
170 | 170 | */ |
171 | - private function setDumpId( $dumpId ) { |
|
172 | - Assert::parameterType( 'string', $dumpId, '$dumpId' ); |
|
173 | - $length = strlen( $dumpId ); |
|
174 | - if ( $length < 1 || $length > 25 ) { |
|
171 | + private function setDumpId($dumpId) { |
|
172 | + Assert::parameterType('string', $dumpId, '$dumpId'); |
|
173 | + $length = strlen($dumpId); |
|
174 | + if ($length < 1 || $length > 25) { |
|
175 | 175 | throw new InvalidArgumentException('$dumpId must be between 1 and 25 characters.'); |
176 | 176 | } |
177 | 177 | |
@@ -183,10 +183,10 @@ discard block |
||
183 | 183 | * |
184 | 184 | * @throws InvalidArgumentException |
185 | 185 | */ |
186 | - private function setLanguageCode( $languageCode ) { |
|
187 | - Assert::parameterType( 'string', $languageCode, '$languageCode' ); |
|
188 | - if( !Language::isValidCode( $languageCode ) ) { |
|
189 | - throw new InvalidArgumentException( '$languageCode is not valid.' ); |
|
186 | + private function setLanguageCode($languageCode) { |
|
187 | + Assert::parameterType('string', $languageCode, '$languageCode'); |
|
188 | + if (!Language::isValidCode($languageCode)) { |
|
189 | + throw new InvalidArgumentException('$languageCode is not valid.'); |
|
190 | 190 | } |
191 | 191 | |
192 | 192 | $this->languageCode = $languageCode; |
@@ -197,12 +197,12 @@ discard block |
||
197 | 197 | * |
198 | 198 | * @throws InvalidArgumentException |
199 | 199 | */ |
200 | - private function setImportDate( $importDate ) { |
|
201 | - Assert::parameterType( 'string', $importDate, '$importDate' ); |
|
200 | + private function setImportDate($importDate) { |
|
201 | + Assert::parameterType('string', $importDate, '$importDate'); |
|
202 | 202 | |
203 | - $timestamp = wfTimestamp( TS_MW, $importDate ); |
|
204 | - if( !$timestamp ) { |
|
205 | - throw new InvalidArgumentException( '$updatedAt has invalid timestamp format.' ); |
|
203 | + $timestamp = wfTimestamp(TS_MW, $importDate); |
|
204 | + if (!$timestamp) { |
|
205 | + throw new InvalidArgumentException('$updatedAt has invalid timestamp format.'); |
|
206 | 206 | } |
207 | 207 | |
208 | 208 | $this->importDate = $importDate; |
@@ -213,13 +213,13 @@ discard block |
||
213 | 213 | * |
214 | 214 | * @throws InvalidArgumentException |
215 | 215 | */ |
216 | - private function setSourceUrl( $sourceUrl ) { |
|
217 | - Assert::parameterType( 'string', $sourceUrl, '$sourceUrl' ); |
|
218 | - if( strlen( $sourceUrl ) > 300 ) { |
|
219 | - throw new InvalidArgumentException( '$sourceUrl must not be longer than 300 characters.' ); |
|
216 | + private function setSourceUrl($sourceUrl) { |
|
217 | + Assert::parameterType('string', $sourceUrl, '$sourceUrl'); |
|
218 | + if (strlen($sourceUrl) > 300) { |
|
219 | + throw new InvalidArgumentException('$sourceUrl must not be longer than 300 characters.'); |
|
220 | 220 | } |
221 | - if( !filter_var($sourceUrl, FILTER_VALIDATE_URL) ) { |
|
222 | - throw new InvalidArgumentException( '$sourceUrl is not a valid url.' ); |
|
221 | + if (!filter_var($sourceUrl, FILTER_VALIDATE_URL)) { |
|
222 | + throw new InvalidArgumentException('$sourceUrl is not a valid url.'); |
|
223 | 223 | } |
224 | 224 | |
225 | 225 | $this->sourceUrl = $sourceUrl; |
@@ -230,10 +230,10 @@ discard block |
||
230 | 230 | * |
231 | 231 | * @throws InvalidArgumentException |
232 | 232 | */ |
233 | - private function setSize( $size ) { |
|
234 | - Assert::parameterType( 'integer', $size, '$size' ); |
|
235 | - if( $size <= 0 ) { |
|
236 | - throw new InvalidArgumentException( '$size must be positive integer.' ); |
|
233 | + private function setSize($size) { |
|
234 | + Assert::parameterType('integer', $size, '$size'); |
|
235 | + if ($size <= 0) { |
|
236 | + throw new InvalidArgumentException('$size must be positive integer.'); |
|
237 | 237 | } |
238 | 238 | |
239 | 239 | $this->size = $size; |