Completed
Pull Request — master (#67)
by
unknown
19s
created
src/Api/CachingResultsSource.php 1 patch
Spacing   +77 added lines, -78 removed lines patch added patch discarded remove patch
@@ -143,14 +143,14 @@  discard block
 block discarded – undo
143 143
 	) {
144 144
 		$results = [];
145 145
 		$metadatas = [];
146
-		if ( $this->canUseStoredResults( $entityIds, $claimIds, $constraintIds, $statuses ) ) {
146
+		if ($this->canUseStoredResults($entityIds, $claimIds, $constraintIds, $statuses)) {
147 147
 			$storedEntityIds = [];
148
-			foreach ( $entityIds as $entityId ) {
149
-				$storedResults = $this->getStoredResults( $entityId );
150
-				if ( $storedResults !== null ) {
151
-					$this->loggingHelper->logCheckConstraintsCacheHit( $entityId );
152
-					foreach ( $storedResults->getArray() as $checkResult ) {
153
-						if ( $this->statusSelected( $statuses, $checkResult ) ) {
148
+			foreach ($entityIds as $entityId) {
149
+				$storedResults = $this->getStoredResults($entityId);
150
+				if ($storedResults !== null) {
151
+					$this->loggingHelper->logCheckConstraintsCacheHit($entityId);
152
+					foreach ($storedResults->getArray() as $checkResult) {
153
+						if ($this->statusSelected($statuses, $checkResult)) {
154 154
 							$results[] = $checkResult;
155 155
 						}
156 156
 					}
@@ -158,19 +158,19 @@  discard block
 block discarded – undo
158 158
 					$storedEntityIds[] = $entityId;
159 159
 				}
160 160
 			}
161
-			$entityIds = array_values( array_diff( $entityIds, $storedEntityIds ) );
161
+			$entityIds = array_values(array_diff($entityIds, $storedEntityIds));
162 162
 		}
163
-		if ( $entityIds !== [] || $claimIds !== [] ) {
164
-			if ( $entityIds !== [] ) {
165
-				$this->loggingHelper->logCheckConstraintsCacheMisses( $entityIds );
163
+		if ($entityIds !== [] || $claimIds !== []) {
164
+			if ($entityIds !== []) {
165
+				$this->loggingHelper->logCheckConstraintsCacheMisses($entityIds);
166 166
 			}
167
-			$response = $this->getAndStoreResults( $entityIds, $claimIds, $constraintIds, $statuses );
168
-			$results = array_merge( $results, $response->getArray() );
167
+			$response = $this->getAndStoreResults($entityIds, $claimIds, $constraintIds, $statuses);
168
+			$results = array_merge($results, $response->getArray());
169 169
 			$metadatas[] = $response->getMetadata();
170 170
 		}
171 171
 		return new CachedCheckResults(
172 172
 			$results,
173
-			Metadata::merge( $metadatas )
173
+			Metadata::merge($metadatas)
174 174
 		);
175 175
 	}
176 176
 
@@ -193,13 +193,13 @@  discard block
 block discarded – undo
193 193
 		?array $constraintIds,
194 194
 		array $statuses
195 195
 	) {
196
-		if ( $claimIds !== [] ) {
196
+		if ($claimIds !== []) {
197 197
 			return false;
198 198
 		}
199
-		if ( $constraintIds !== null ) {
199
+		if ($constraintIds !== null) {
200 200
 			return false;
201 201
 		}
202
-		if ( array_diff( $statuses, self::CACHED_STATUSES ) !== [] ) {
202
+		if (array_diff($statuses, self::CACHED_STATUSES) !== []) {
203 203
 			return false;
204 204
 		}
205 205
 		return true;
@@ -214,8 +214,8 @@  discard block
 block discarded – undo
214 214
 	 * @param CheckResult $result
215 215
 	 * @return bool
216 216
 	 */
217
-	private function statusSelected( array $statuses, CheckResult $result ) {
218
-		return in_array( $result->getStatus(), $statuses, true ) ||
217
+	private function statusSelected(array $statuses, CheckResult $result) {
218
+		return in_array($result->getStatus(), $statuses, true) ||
219 219
 			$result instanceof NullResult;
220 220
 	}
221 221
 
@@ -232,11 +232,11 @@  discard block
 block discarded – undo
232 232
 		?array $constraintIds,
233 233
 		array $statuses
234 234
 	) {
235
-		$results = $this->resultsSource->getResults( $entityIds, $claimIds, $constraintIds, $statuses );
235
+		$results = $this->resultsSource->getResults($entityIds, $claimIds, $constraintIds, $statuses);
236 236
 
237
-		if ( $this->canStoreResults( $entityIds, $claimIds, $constraintIds, $statuses ) ) {
238
-			foreach ( $entityIds as $entityId ) {
239
-				$this->storeResults( $entityId, $results );
237
+		if ($this->canStoreResults($entityIds, $claimIds, $constraintIds, $statuses)) {
238
+			foreach ($entityIds as $entityId) {
239
+				$this->storeResults($entityId, $results);
240 240
 			}
241 241
 		}
242 242
 
@@ -267,10 +267,10 @@  discard block
 block discarded – undo
267 267
 		?array $constraintIds,
268 268
 		array $statuses
269 269
 	) {
270
-		if ( $constraintIds !== null ) {
270
+		if ($constraintIds !== null) {
271 271
 			return false;
272 272
 		}
273
-		if ( array_diff( self::CACHED_STATUSES, $statuses ) !== [] ) {
273
+		if (array_diff(self::CACHED_STATUSES, $statuses) !== []) {
274 274
 			return false;
275 275
 		}
276 276
 		return true;
@@ -284,21 +284,21 @@  discard block
 block discarded – undo
284 284
 	 * May include check results for other entity IDs as well,
285 285
 	 * or check results with statuses that we’re not interested in caching.
286 286
 	 */
287
-	private function storeResults( EntityId $entityId, CachedCheckResults $results ) {
287
+	private function storeResults(EntityId $entityId, CachedCheckResults $results) {
288 288
 		$latestRevisionIds = $this->getLatestRevisionIds(
289 289
 			$results->getMetadata()->getDependencyMetadata()->getEntityIds()
290 290
 		);
291
-		if ( $latestRevisionIds === null ) {
291
+		if ($latestRevisionIds === null) {
292 292
 			return;
293 293
 		}
294 294
 
295 295
 		$resultSerializations = [];
296
-		foreach ( $results->getArray() as $checkResult ) {
297
-			if ( $checkResult->getContextCursor()->getEntityId() !== $entityId->getSerialization() ) {
296
+		foreach ($results->getArray() as $checkResult) {
297
+			if ($checkResult->getContextCursor()->getEntityId() !== $entityId->getSerialization()) {
298 298
 				continue;
299 299
 			}
300
-			if ( $this->statusSelected( self::CACHED_STATUSES, $checkResult ) ) {
301
-				$resultSerializations[] = $this->checkResultSerializer->serialize( $checkResult );
300
+			if ($this->statusSelected(self::CACHED_STATUSES, $checkResult)) {
301
+				$resultSerializations[] = $this->checkResultSerializer->serialize($checkResult);
302 302
 			}
303 303
 		}
304 304
 
@@ -307,11 +307,11 @@  discard block
 block discarded – undo
307 307
 			'latestRevisionIds' => $latestRevisionIds,
308 308
 		];
309 309
 		$futureTime = $results->getMetadata()->getDependencyMetadata()->getFutureTime();
310
-		if ( $futureTime !== null ) {
310
+		if ($futureTime !== null) {
311 311
 			$value['futureTime'] = $futureTime->getArrayValue();
312 312
 		}
313 313
 
314
-		$this->cache->set( $entityId, $value, $this->ttlInSeconds );
314
+		$this->cache->set($entityId, $value, $this->ttlInSeconds);
315 315
 	}
316 316
 
317 317
 	/**
@@ -326,33 +326,32 @@  discard block
 block discarded – undo
326 326
 		$forRevision = 0
327 327
 	) {
328 328
 		$cacheInfo = WANObjectCache::PASS_BY_REF;
329
-		$value = $this->cache->get( $entityId, $curTTL, [], $cacheInfo );
330
-		$now = call_user_func( $this->microtime, true );
329
+		$value = $this->cache->get($entityId, $curTTL, [], $cacheInfo);
330
+		$now = call_user_func($this->microtime, true);
331 331
 
332
-		$dependencyMetadata = $this->checkDependencyMetadata( $value,
333
-			[ $entityId->getSerialization() => $forRevision ] );
334
-		if ( $dependencyMetadata === null ) {
332
+		$dependencyMetadata = $this->checkDependencyMetadata($value,
333
+			[$entityId->getSerialization() => $forRevision]);
334
+		if ($dependencyMetadata === null) {
335 335
 			return null;
336 336
 		}
337 337
 
338 338
 		// @phan-suppress-next-line PhanTypePossiblyInvalidDimOffset False positive
339 339
 		$asOf = $cacheInfo[WANObjectCache::KEY_AS_OF];
340
-		$ageInSeconds = (int)ceil( $now - $asOf );
340
+		$ageInSeconds = (int) ceil($now - $asOf);
341 341
 		$cachingMetadata = $ageInSeconds > 0 ?
342
-			CachingMetadata::ofMaximumAgeInSeconds( $ageInSeconds ) :
343
-			CachingMetadata::fresh();
342
+			CachingMetadata::ofMaximumAgeInSeconds($ageInSeconds) : CachingMetadata::fresh();
344 343
 
345 344
 		$results = [];
346
-		foreach ( $value['results'] as $resultSerialization ) {
347
-			$results[] = $this->deserializeCheckResult( $resultSerialization, $cachingMetadata );
345
+		foreach ($value['results'] as $resultSerialization) {
346
+			$results[] = $this->deserializeCheckResult($resultSerialization, $cachingMetadata);
348 347
 		}
349 348
 
350 349
 		return new CachedCheckResults(
351 350
 			$results,
352
-			Metadata::merge( [
353
-				Metadata::ofCachingMetadata( $cachingMetadata ),
354
-				Metadata::ofDependencyMetadata( $dependencyMetadata ),
355
-			] )
351
+			Metadata::merge([
352
+				Metadata::ofCachingMetadata($cachingMetadata),
353
+				Metadata::ofDependencyMetadata($dependencyMetadata),
354
+			])
356 355
 		);
357 356
 	}
358 357
 
@@ -368,43 +367,43 @@  discard block
 block discarded – undo
368 367
 	 * @return DependencyMetadata|null the dependency metadata,
369 368
 	 * or null if $value should no longer be used
370 369
 	 */
371
-	private function checkDependencyMetadata( $value, $paramRevs ) {
372
-		if ( $value === false ) {
370
+	private function checkDependencyMetadata($value, $paramRevs) {
371
+		if ($value === false) {
373 372
 			return null;
374 373
 		}
375 374
 
376
-		if ( array_key_exists( 'futureTime', $value ) ) {
377
-			$futureTime = TimeValue::newFromArray( $value['futureTime'] );
378
-			if ( !$this->timeValueComparer->isFutureTime( $futureTime ) ) {
375
+		if (array_key_exists('futureTime', $value)) {
376
+			$futureTime = TimeValue::newFromArray($value['futureTime']);
377
+			if (!$this->timeValueComparer->isFutureTime($futureTime)) {
379 378
 				return null;
380 379
 			}
381
-			$futureTimeDependencyMetadata = DependencyMetadata::ofFutureTime( $futureTime );
380
+			$futureTimeDependencyMetadata = DependencyMetadata::ofFutureTime($futureTime);
382 381
 		} else {
383 382
 			$futureTimeDependencyMetadata = DependencyMetadata::blank();
384 383
 		}
385 384
 
386
-		foreach ( $paramRevs as $id => $revision ) {
387
-			if ( $revision > 0 ) {
388
-				$value['latestRevisionIds'][$id] = min( $revision, $value['latestRevisionIds'][$id] ?? PHP_INT_MAX );
385
+		foreach ($paramRevs as $id => $revision) {
386
+			if ($revision > 0) {
387
+				$value['latestRevisionIds'][$id] = min($revision, $value['latestRevisionIds'][$id] ?? PHP_INT_MAX);
389 388
 			}
390 389
 		}
391 390
 
392 391
 		$dependedEntityIds = array_map(
393
-			[ $this->entityIdParser, "parse" ],
394
-			array_keys( $value['latestRevisionIds'] )
392
+			[$this->entityIdParser, "parse"],
393
+			array_keys($value['latestRevisionIds'])
395 394
 		);
396 395
 
397
-		if ( $value['latestRevisionIds'] !== $this->getLatestRevisionIds( $dependedEntityIds ) ) {
396
+		if ($value['latestRevisionIds'] !== $this->getLatestRevisionIds($dependedEntityIds)) {
398 397
 			return null;
399 398
 		}
400 399
 
401 400
 		return array_reduce(
402 401
 			$dependedEntityIds,
403
-			static function ( DependencyMetadata $metadata, EntityId $entityId ) {
404
-				return DependencyMetadata::merge( [
402
+			static function(DependencyMetadata $metadata, EntityId $entityId) {
403
+				return DependencyMetadata::merge([
405 404
 					$metadata,
406
-					DependencyMetadata::ofEntityId( $entityId ),
407
-				] );
405
+					DependencyMetadata::ofEntityId($entityId),
406
+				]);
408 407
 			},
409 408
 			$futureTimeDependencyMetadata
410 409
 		);
@@ -424,13 +423,13 @@  discard block
 block discarded – undo
424 423
 		array $resultSerialization,
425 424
 		CachingMetadata $cachingMetadata
426 425
 	) {
427
-		$result = $this->checkResultDeserializer->deserialize( $resultSerialization );
428
-		if ( $this->isPossiblyStaleResult( $result ) ) {
426
+		$result = $this->checkResultDeserializer->deserialize($resultSerialization);
427
+		if ($this->isPossiblyStaleResult($result)) {
429 428
 			$result->withMetadata(
430
-				Metadata::merge( [
429
+				Metadata::merge([
431 430
 					$result->getMetadata(),
432
-					Metadata::ofCachingMetadata( $cachingMetadata ),
433
-				] )
431
+					Metadata::ofCachingMetadata($cachingMetadata),
432
+				])
434 433
 			);
435 434
 		}
436 435
 		return $result;
@@ -440,8 +439,8 @@  discard block
 block discarded – undo
440 439
 	 * @param CheckResult $result
441 440
 	 * @return bool
442 441
 	 */
443
-	private function isPossiblyStaleResult( CheckResult $result ) {
444
-		if ( $result instanceof NullResult ) {
442
+	private function isPossiblyStaleResult(CheckResult $result) {
443
+		if ($result instanceof NullResult) {
445 444
 			return false;
446 445
 		}
447 446
 
@@ -456,14 +455,14 @@  discard block
 block discarded – undo
456 455
 	 * @return int[]|null array from entity ID serializations to revision ID,
457 456
 	 * or null to indicate that not all revision IDs could be loaded
458 457
 	 */
459
-	private function getLatestRevisionIds( array $entityIds ) {
460
-		if ( $entityIds === [] ) {
458
+	private function getLatestRevisionIds(array $entityIds) {
459
+		if ($entityIds === []) {
461 460
 			$this->loggingHelper->logEmptyDependencyMetadata();
462 461
 			return [];
463 462
 		}
464
-		if ( count( $entityIds ) > $this->maxRevisionIds ) {
463
+		if (count($entityIds) > $this->maxRevisionIds) {
465 464
 			// one of those entities will probably be edited soon, so might as well skip caching
466
-			$this->loggingHelper->logHugeDependencyMetadata( $entityIds, $this->maxRevisionIds );
465
+			$this->loggingHelper->logHugeDependencyMetadata($entityIds, $this->maxRevisionIds);
467 466
 			return null;
468 467
 		}
469 468
 
@@ -471,7 +470,7 @@  discard block
 block discarded – undo
471 470
 			$entityIds,
472 471
 			LookupConstants::LATEST_FROM_REPLICA
473 472
 		);
474
-		if ( $this->hasFalseElements( $latestRevisionIds ) ) {
473
+		if ($this->hasFalseElements($latestRevisionIds)) {
475 474
 			return null;
476 475
 		}
477 476
 		return $latestRevisionIds;
@@ -481,8 +480,8 @@  discard block
 block discarded – undo
481 480
 	 * @param array $array
482 481
 	 * @return bool
483 482
 	 */
484
-	private function hasFalseElements( array $array ) {
485
-		return in_array( false, $array, true );
483
+	private function hasFalseElements(array $array) {
484
+		return in_array(false, $array, true);
486 485
 	}
487 486
 
488 487
 	/**
@@ -490,7 +489,7 @@  discard block
 block discarded – undo
490 489
 	 *
491 490
 	 * @param callable $microtime
492 491
 	 */
493
-	public function setMicrotimeFunction( callable $microtime ) {
492
+	public function setMicrotimeFunction(callable $microtime) {
494 493
 		$this->microtime = $microtime;
495 494
 	}
496 495
 
Please login to merge, or discard this patch.
src/Api/CheckResultsRenderer.php 1 patch
Spacing   +20 added lines, -20 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3
-declare( strict_types = 1 );
3
+declare(strict_types=1);
4 4
 
5 5
 namespace WikibaseQuality\ConstraintReport\Api;
6 6
 
@@ -41,11 +41,11 @@  discard block
 block discarded – undo
41 41
 		$this->violationMessageRenderer = $violationMessageRenderer;
42 42
 	}
43 43
 
44
-	public function render( CachedCheckResults $checkResults ): CachedCheckConstraintsResponse {
44
+	public function render(CachedCheckResults $checkResults): CachedCheckConstraintsResponse {
45 45
 		$response = [];
46
-		foreach ( $checkResults->getArray() as $checkResult ) {
47
-			$resultArray = $this->checkResultToArray( $checkResult );
48
-			$checkResult->getContextCursor()->storeCheckResultInArray( $resultArray, $response );
46
+		foreach ($checkResults->getArray() as $checkResult) {
47
+			$resultArray = $this->checkResultToArray($checkResult);
48
+			$checkResult->getContextCursor()->storeCheckResultInArray($resultArray, $response);
49 49
 		}
50 50
 		return new CachedCheckConstraintsResponse(
51 51
 			$response,
@@ -53,19 +53,19 @@  discard block
 block discarded – undo
53 53
 		);
54 54
 	}
55 55
 
56
-	public function checkResultToArray( CheckResult $checkResult ): ?array {
57
-		if ( $checkResult instanceof NullResult ) {
56
+	public function checkResultToArray(CheckResult $checkResult): ?array {
57
+		if ($checkResult instanceof NullResult) {
58 58
 			return null;
59 59
 		}
60 60
 
61 61
 		$constraintId = $checkResult->getConstraint()->getConstraintId();
62 62
 		$typeItemId = $checkResult->getConstraint()->getConstraintTypeItemId();
63
-		$constraintPropertyId = new NumericPropertyId( $checkResult->getContextCursor()->getSnakPropertyId() );
63
+		$constraintPropertyId = new NumericPropertyId($checkResult->getContextCursor()->getSnakPropertyId());
64 64
 
65
-		$title = $this->entityTitleLookup->getTitleForId( $constraintPropertyId );
65
+		$title = $this->entityTitleLookup->getTitleForId($constraintPropertyId);
66 66
 		$talkTitle = $title->getTalkPageIfDefined();
67
-		$typeLabel = $this->entityIdLabelFormatter->formatEntityId( new ItemId( $typeItemId ) );
68
-		$link = $title->getFullURL() . '#' . $constraintId;
67
+		$typeLabel = $this->entityIdLabelFormatter->formatEntityId(new ItemId($typeItemId));
68
+		$link = $title->getFullURL().'#'.$constraintId;
69 69
 
70 70
 		$constraint = [
71 71
 			'id' => $constraintId,
@@ -81,28 +81,28 @@  discard block
 block discarded – undo
81 81
 			'constraint' => $constraint,
82 82
 		];
83 83
 		$message = $checkResult->getMessage();
84
-		if ( $message ) {
85
-			$result['message-html'] = $this->violationMessageRenderer->render( $message );
84
+		if ($message) {
85
+			$result['message-html'] = $this->violationMessageRenderer->render($message);
86 86
 		}
87
-		$constraintClarification = $this->renderConstraintClarification( $checkResult );
88
-		if ( $constraintClarification !== null ) {
87
+		$constraintClarification = $this->renderConstraintClarification($checkResult);
88
+		if ($constraintClarification !== null) {
89 89
 			$result['constraint-clarification'] = $constraintClarification;
90 90
 		}
91
-		if ( $checkResult->getContextCursor()->getType() === Context::TYPE_STATEMENT ) {
91
+		if ($checkResult->getContextCursor()->getType() === Context::TYPE_STATEMENT) {
92 92
 			$result['claim'] = $checkResult->getContextCursor()->getStatementGuid();
93 93
 		}
94 94
 		$cachingMetadataArray = $checkResult->getMetadata()->getCachingMetadata()->toArray();
95
-		if ( $cachingMetadataArray !== null ) {
95
+		if ($cachingMetadataArray !== null) {
96 96
 			$result['cached'] = $cachingMetadataArray;
97 97
 		}
98 98
 
99 99
 		return $result;
100 100
 	}
101 101
 
102
-	private function renderConstraintClarification( CheckResult $result ): ?string {
102
+	private function renderConstraintClarification(CheckResult $result): ?string {
103 103
 		$texts = $result->getConstraintClarification()->getTexts();
104
-		foreach ( $this->languageFallbackChain->getFetchLanguageCodes() as $languageCode ) {
105
-			if ( array_key_exists( $languageCode, $texts ) ) {
104
+		foreach ($this->languageFallbackChain->getFetchLanguageCodes() as $languageCode) {
105
+			if (array_key_exists($languageCode, $texts)) {
106 106
 				return $texts[$languageCode]->getText();
107 107
 			}
108 108
 		}
Please login to merge, or discard this patch.
src/Api/CheckingResultsSource.php 1 patch
Spacing   +20 added lines, -21 removed lines patch added patch discarded remove patch
@@ -44,57 +44,56 @@
 block discarded – undo
44 44
 	) {
45 45
 		$results = [];
46 46
 		$metadatas = [];
47
-		$statusesFlipped = array_flip( $statuses );
48
-		foreach ( $entityIds as $entityId ) {
47
+		$statusesFlipped = array_flip($statuses);
48
+		foreach ($entityIds as $entityId) {
49 49
 			$entityResults = $this->delegatingConstraintChecker->checkAgainstConstraintsOnEntityId(
50 50
 				$entityId,
51 51
 				$constraintIds,
52
-				[ $this, 'defaultResultsPerContext' ],
53
-				[ $this, 'defaultResultsPerEntity' ]
52
+				[$this, 'defaultResultsPerContext'],
53
+				[$this, 'defaultResultsPerEntity']
54 54
 			);
55
-			foreach ( $entityResults as $result ) {
55
+			foreach ($entityResults as $result) {
56 56
 				$metadatas[] = $result->getMetadata();
57
-				if ( $this->statusSelected( $statusesFlipped, $result ) ) {
57
+				if ($this->statusSelected($statusesFlipped, $result)) {
58 58
 					$results[] = $result;
59 59
 				}
60 60
 			}
61 61
 		}
62
-		foreach ( $claimIds as $claimId ) {
62
+		foreach ($claimIds as $claimId) {
63 63
 			$claimResults = $this->delegatingConstraintChecker->checkAgainstConstraintsOnClaimId(
64 64
 				$claimId,
65 65
 				$constraintIds,
66
-				[ $this, 'defaultResultsPerContext' ]
66
+				[$this, 'defaultResultsPerContext']
67 67
 			);
68
-			foreach ( $claimResults as $result ) {
68
+			foreach ($claimResults as $result) {
69 69
 				$metadatas[] = $result->getMetadata();
70
-				if ( $this->statusSelected( $statusesFlipped, $result ) ) {
70
+				if ($this->statusSelected($statusesFlipped, $result)) {
71 71
 					$results[] = $result;
72 72
 				}
73 73
 			}
74 74
 		}
75 75
 		return new CachedCheckResults(
76 76
 			$results,
77
-			Metadata::merge( $metadatas )
77
+			Metadata::merge($metadatas)
78 78
 		);
79 79
 	}
80 80
 
81
-	public function defaultResultsPerContext( Context $context ) {
81
+	public function defaultResultsPerContext(Context $context) {
82 82
 		return $context->getType() === Context::TYPE_STATEMENT ?
83
-			[ new NullResult( $context->getCursor() ) ] :
84
-			[];
83
+			[new NullResult($context->getCursor())] : [];
85 84
 	}
86 85
 
87
-	public function defaultResultsPerEntity( EntityId $entityId ) {
86
+	public function defaultResultsPerEntity(EntityId $entityId) {
88 87
 		return [
89
-			( new NullResult( new EntityContextCursor( $entityId->getSerialization() ) ) )
90
-				->withMetadata( Metadata::ofDependencyMetadata(
91
-					DependencyMetadata::ofEntityId( $entityId )
92
-				) ),
88
+			(new NullResult(new EntityContextCursor($entityId->getSerialization())))
89
+				->withMetadata(Metadata::ofDependencyMetadata(
90
+					DependencyMetadata::ofEntityId($entityId)
91
+				)),
93 92
 		];
94 93
 	}
95 94
 
96
-	public function statusSelected( array $statusesFlipped, CheckResult $result ) {
97
-		return array_key_exists( $result->getStatus(), $statusesFlipped ) ||
95
+	public function statusSelected(array $statusesFlipped, CheckResult $result) {
96
+		return array_key_exists($result->getStatus(), $statusesFlipped) ||
98 97
 			$result instanceof NullResult;
99 98
 	}
100 99
 
Please login to merge, or discard this patch.
src/ConstraintCheck/Result/CheckResultDeserializer.php 1 patch
Spacing   +25 added lines, -25 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3
-declare( strict_types = 1 );
3
+declare(strict_types=1);
4 4
 
5 5
 namespace WikibaseQuality\ConstraintReport\ConstraintCheck\Result;
6 6
 
@@ -40,13 +40,13 @@  discard block
 block discarded – undo
40 40
 		$this->entityIdParser = $entityIdParser;
41 41
 	}
42 42
 
43
-	public function deserialize( array $serialization ): CheckResult {
43
+	public function deserialize(array $serialization): CheckResult {
44 44
 		$contextCursor = $this->contextCursorDeserializer->deserialize(
45 45
 			$serialization[CheckResultSerializer::KEY_CONTEXT_CURSOR]
46 46
 		);
47 47
 
48
-		if ( array_key_exists( CheckResultSerializer::KEY_NULL_RESULT, $serialization ) ) {
49
-			$result = new NullResult( $contextCursor );
48
+		if (array_key_exists(CheckResultSerializer::KEY_NULL_RESULT, $serialization)) {
49
+			$result = new NullResult($contextCursor);
50 50
 			$cachingMetadata = CachingMetadata::fresh();
51 51
 		} else {
52 52
 			$constraint = $this->constraintDeserializer->deserialize(
@@ -57,7 +57,7 @@  discard block
 block discarded – undo
57 57
 
58 58
 			$status = $serialization[CheckResultSerializer::KEY_CHECK_RESULT_STATUS];
59 59
 
60
-			$violationMessage = $this->getViolationMessageFromSerialization( $serialization );
60
+			$violationMessage = $this->getViolationMessageFromSerialization($serialization);
61 61
 
62 62
 			$result = new CheckResult(
63 63
 				$contextCursor,
@@ -68,7 +68,7 @@  discard block
 block discarded – undo
68 68
 			);
69 69
 
70 70
 			$result->setConstraintClarification(
71
-				$this->getConstraintClarificationFromSerialization( $serialization )
71
+				$this->getConstraintClarificationFromSerialization($serialization)
72 72
 			);
73 73
 
74 74
 			$cachingMetadata = $this->deserializeCachingMetadata(
@@ -76,18 +76,18 @@  discard block
 block discarded – undo
76 76
 			);
77 77
 		}
78 78
 
79
-		$dependencyMetadata = $this->getDependencyMetadataFromSerialization( $serialization );
79
+		$dependencyMetadata = $this->getDependencyMetadataFromSerialization($serialization);
80 80
 
81 81
 		return $result->withMetadata(
82
-			Metadata::merge( [
83
-				Metadata::ofCachingMetadata( $cachingMetadata ),
84
-				Metadata::ofDependencyMetadata( $dependencyMetadata ),
85
-			] )
82
+			Metadata::merge([
83
+				Metadata::ofCachingMetadata($cachingMetadata),
84
+				Metadata::ofDependencyMetadata($dependencyMetadata),
85
+			])
86 86
 		);
87 87
 	}
88 88
 
89
-	private function getViolationMessageFromSerialization( array $serialization ): ?ViolationMessage {
90
-		if ( array_key_exists( CheckResultSerializer::KEY_VIOLATION_MESSAGE, $serialization ) ) {
89
+	private function getViolationMessageFromSerialization(array $serialization): ?ViolationMessage {
90
+		if (array_key_exists(CheckResultSerializer::KEY_VIOLATION_MESSAGE, $serialization)) {
91 91
 			return $this->violationMessageDeserializer->deserialize(
92 92
 				$serialization[CheckResultSerializer::KEY_VIOLATION_MESSAGE]
93 93
 			);
@@ -99,17 +99,17 @@  discard block
 block discarded – undo
99 99
 	private function getConstraintClarificationFromSerialization(
100 100
 		array $serialization
101 101
 	): MultilingualTextValue {
102
-		if ( array_key_exists( CheckResultSerializer::KEY_CONSTRAINT_CLARIFICATION, $serialization ) ) {
102
+		if (array_key_exists(CheckResultSerializer::KEY_CONSTRAINT_CLARIFICATION, $serialization)) {
103 103
 			return MultilingualTextValue::newFromArray(
104 104
 				$serialization[CheckResultSerializer::KEY_CONSTRAINT_CLARIFICATION]
105 105
 			);
106 106
 		} else {
107
-			return new MultilingualTextValue( [] );
107
+			return new MultilingualTextValue([]);
108 108
 		}
109 109
 	}
110 110
 
111
-	private function getDependencyMetadataFromSerialization( array $serialization ): DependencyMetadata {
112
-		if ( array_key_exists( CheckResultSerializer::KEY_DEPENDENCY_METADATA, $serialization ) ) {
111
+	private function getDependencyMetadataFromSerialization(array $serialization): DependencyMetadata {
112
+		if (array_key_exists(CheckResultSerializer::KEY_DEPENDENCY_METADATA, $serialization)) {
113 113
 			return $this->deserializeDependencyMetadata(
114 114
 				$serialization[CheckResultSerializer::KEY_DEPENDENCY_METADATA]
115 115
 			);
@@ -118,7 +118,7 @@  discard block
 block discarded – undo
118 118
 		}
119 119
 	}
120 120
 
121
-	private function deserializeCachingMetadata( array $serialization ): CachingMetadata {
121
+	private function deserializeCachingMetadata(array $serialization): CachingMetadata {
122 122
 		if (
123 123
 			array_key_exists(
124 124
 				CheckResultSerializer::KEY_CACHING_METADATA_MAX_AGE,
@@ -133,7 +133,7 @@  discard block
 block discarded – undo
133 133
 		}
134 134
 	}
135 135
 
136
-	private function deserializeDependencyMetadata( array $serialization ): DependencyMetadata {
136
+	private function deserializeDependencyMetadata(array $serialization): DependencyMetadata {
137 137
 		if (
138 138
 			array_key_exists(
139 139
 				CheckResultSerializer::KEY_DEPENDENCY_METADATA_FUTURE_TIME,
@@ -143,20 +143,20 @@  discard block
 block discarded – undo
143 143
 			$futureTime = TimeValue::newFromArray(
144 144
 				$serialization[CheckResultSerializer::KEY_DEPENDENCY_METADATA_FUTURE_TIME]
145 145
 			);
146
-			$futureTimeDependencyMetadata = DependencyMetadata::ofFutureTime( $futureTime );
146
+			$futureTimeDependencyMetadata = DependencyMetadata::ofFutureTime($futureTime);
147 147
 		} else {
148 148
 			$futureTimeDependencyMetadata = DependencyMetadata::blank();
149 149
 		}
150 150
 
151 151
 		$dependencyMetadata = array_reduce(
152 152
 			$serialization[CheckResultSerializer::KEY_DEPENDENCY_METADATA_ENTITY_IDS],
153
-			function ( DependencyMetadata $metadata, $entityIdSerialization ) {
154
-				$entityId = $this->entityIdParser->parse( $entityIdSerialization );
153
+			function(DependencyMetadata $metadata, $entityIdSerialization) {
154
+				$entityId = $this->entityIdParser->parse($entityIdSerialization);
155 155
 
156
-				return DependencyMetadata::merge( [
156
+				return DependencyMetadata::merge([
157 157
 					$metadata,
158
-					DependencyMetadata::ofEntityId( $entityId ),
159
-				] );
158
+					DependencyMetadata::ofEntityId($entityId),
159
+				]);
160 160
 			},
161 161
 			$futureTimeDependencyMetadata
162 162
 		);
Please login to merge, or discard this patch.
src/Specials/SpecialConstraintReport.php 1 patch
Spacing   +82 added lines, -82 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3
-declare( strict_types = 1 );
3
+declare(strict_types=1);
4 4
 
5 5
 namespace WikibaseQuality\ConstraintReport\Specials;
6 6
 
@@ -97,7 +97,7 @@  discard block
 block discarded – undo
97 97
 		Config $config,
98 98
 		IBufferingStatsdDataFactory $dataFactory
99 99
 	) {
100
-		parent::__construct( 'ConstraintReport' );
100
+		parent::__construct('ConstraintReport');
101 101
 
102 102
 		$this->entityLookup = $entityLookup;
103 103
 		$this->entityTitleLookup = $entityTitleLookup;
@@ -106,7 +106,7 @@  discard block
 block discarded – undo
106 106
 		$language = $this->getLanguage();
107 107
 
108 108
 		$formatterOptions = new FormatterOptions();
109
-		$formatterOptions->setOption( SnakFormatter::OPT_LANG, $language->getCode() );
109
+		$formatterOptions->setOption(SnakFormatter::OPT_LANG, $language->getCode());
110 110
 		$dataValueFormatter = $valueFormatterFactory->getValueFormatter(
111 111
 			SnakFormatter::FORMAT_HTML,
112 112
 			$formatterOptions
@@ -130,7 +130,7 @@  discard block
 block discarded – undo
130 130
 		);
131 131
 		$this->violationMessageRenderer = $violationMessageRendererFactory->getViolationMessageRenderer(
132 132
 			$language,
133
-			$languageFallbackChainFactory->newFromLanguage( $language ),
133
+			$languageFallbackChainFactory->newFromLanguage($language),
134 134
 			$this->getContext()
135 135
 		);
136 136
 
@@ -166,7 +166,7 @@  discard block
 block discarded – undo
166 166
 	 * @return string
167 167
 	 */
168 168
 	public function getDescription() {
169
-		return $this->msg( 'wbqc-constraintreport' )->text();
169
+		return $this->msg('wbqc-constraintreport')->text();
170 170
 	}
171 171
 
172 172
 	/**
@@ -178,43 +178,43 @@  discard block
 block discarded – undo
178 178
 	 * @throws EntityIdParsingException
179 179
 	 * @throws UnexpectedValueException
180 180
 	 */
181
-	public function execute( $subPage ) {
181
+	public function execute($subPage) {
182 182
 		$out = $this->getOutput();
183 183
 
184
-		$postRequest = $this->getContext()->getRequest()->getVal( 'entityid' );
185
-		if ( $postRequest ) {
186
-			$out->redirect( $this->getPageTitle( strtoupper( $postRequest ) )->getLocalURL() );
184
+		$postRequest = $this->getContext()->getRequest()->getVal('entityid');
185
+		if ($postRequest) {
186
+			$out->redirect($this->getPageTitle(strtoupper($postRequest))->getLocalURL());
187 187
 			return;
188 188
 		}
189 189
 
190 190
 		$out->enableOOUI();
191
-		$out->addModules( $this->getModules() );
191
+		$out->addModules($this->getModules());
192 192
 
193 193
 		$this->setHeaders();
194 194
 
195
-		$out->addHTML( $this->getExplanationText() );
195
+		$out->addHTML($this->getExplanationText());
196 196
 		$this->buildEntityIdForm();
197 197
 
198
-		if ( !$subPage ) {
198
+		if (!$subPage) {
199 199
 			return;
200 200
 		}
201 201
 
202
-		if ( !is_string( $subPage ) ) {
203
-			throw new InvalidArgumentException( '$subPage must be string.' );
202
+		if (!is_string($subPage)) {
203
+			throw new InvalidArgumentException('$subPage must be string.');
204 204
 		}
205 205
 
206 206
 		try {
207
-			$entityId = $this->entityIdParser->parse( $subPage );
208
-		} catch ( EntityIdParsingException $e ) {
207
+			$entityId = $this->entityIdParser->parse($subPage);
208
+		} catch (EntityIdParsingException $e) {
209 209
 			$out->addHTML(
210
-				$this->buildNotice( 'wbqc-constraintreport-invalid-entity-id', true )
210
+				$this->buildNotice('wbqc-constraintreport-invalid-entity-id', true)
211 211
 			);
212 212
 			return;
213 213
 		}
214 214
 
215
-		if ( !$this->entityLookup->hasEntity( $entityId ) ) {
215
+		if (!$this->entityLookup->hasEntity($entityId)) {
216 216
 			$out->addHTML(
217
-				$this->buildNotice( 'wbqc-constraintreport-not-existent-entity', true )
217
+				$this->buildNotice('wbqc-constraintreport-not-existent-entity', true)
218 218
 			);
219 219
 			return;
220 220
 		}
@@ -222,18 +222,18 @@  discard block
 block discarded – undo
222 222
 		$this->dataFactory->increment(
223 223
 			'wikibase.quality.constraints.specials.specialConstraintReport.executeCheck'
224 224
 		);
225
-		$results = $this->constraintChecker->checkAgainstConstraintsOnEntityId( $entityId );
225
+		$results = $this->constraintChecker->checkAgainstConstraintsOnEntityId($entityId);
226 226
 
227
-		if ( $results !== [] ) {
227
+		if ($results !== []) {
228 228
 			$out->addHTML(
229
-				$this->buildResultHeader( $entityId )
230
-				. $this->buildSummary( $results )
231
-				. $this->buildResultTable( $entityId, $results )
229
+				$this->buildResultHeader($entityId)
230
+				. $this->buildSummary($results)
231
+				. $this->buildResultTable($entityId, $results)
232 232
 			);
233 233
 		} else {
234 234
 			$out->addHTML(
235
-				$this->buildResultHeader( $entityId )
236
-				. $this->buildNotice( 'wbqc-constraintreport-empty-result' )
235
+				$this->buildResultHeader($entityId)
236
+				. $this->buildNotice('wbqc-constraintreport-empty-result')
237 237
 			);
238 238
 		}
239 239
 	}
@@ -249,15 +249,15 @@  discard block
 block discarded – undo
249 249
 				'name' => 'entityid',
250 250
 				'label-message' => 'wbqc-constraintreport-form-entityid-label',
251 251
 				'cssclass' => 'wbqc-constraintreport-form-entity-id',
252
-				'placeholder' => $this->msg( 'wbqc-constraintreport-form-entityid-placeholder' )->escaped(),
252
+				'placeholder' => $this->msg('wbqc-constraintreport-form-entityid-placeholder')->escaped(),
253 253
 			],
254 254
 		];
255
-		$htmlForm = HTMLForm::factory( 'ooui', $formDescriptor, $this->getContext(), 'wbqc-constraintreport-form' );
256
-		$htmlForm->setSubmitText( $this->msg( 'wbqc-constraintreport-form-submit-label' )->escaped() );
257
-		$htmlForm->setSubmitCallback( static function () {
255
+		$htmlForm = HTMLForm::factory('ooui', $formDescriptor, $this->getContext(), 'wbqc-constraintreport-form');
256
+		$htmlForm->setSubmitText($this->msg('wbqc-constraintreport-form-submit-label')->escaped());
257
+		$htmlForm->setSubmitCallback(static function() {
258 258
 			return false;
259 259
 		} );
260
-		$htmlForm->setMethod( 'post' );
260
+		$htmlForm->setMethod('post');
261 261
 		$htmlForm->show();
262 262
 	}
263 263
 
@@ -271,9 +271,9 @@  discard block
 block discarded – undo
271 271
 	 *
272 272
 	 * @return string HTML
273 273
 	 */
274
-	private function buildNotice( string $messageKey, bool $error = false ): string {
274
+	private function buildNotice(string $messageKey, bool $error = false): string {
275 275
 		$cssClasses = 'wbqc-constraintreport-notice';
276
-		if ( $error ) {
276
+		if ($error) {
277 277
 			$cssClasses .= ' wbqc-constraintreport-notice-error';
278 278
 		}
279 279
 
@@ -282,7 +282,7 @@  discard block
 block discarded – undo
282 282
 				[
283 283
 					'class' => $cssClasses,
284 284
 				],
285
-				$this->msg( $messageKey )->escaped()
285
+				$this->msg($messageKey)->escaped()
286 286
 			);
287 287
 	}
288 288
 
@@ -292,16 +292,16 @@  discard block
 block discarded – undo
292 292
 	private function getExplanationText(): string {
293 293
 		return Html::rawElement(
294 294
 			'div',
295
-			[ 'class' => 'wbqc-explanation' ],
295
+			['class' => 'wbqc-explanation'],
296 296
 			Html::rawElement(
297 297
 				'p',
298 298
 				[],
299
-				$this->msg( 'wbqc-constraintreport-explanation-part-one' )->escaped()
299
+				$this->msg('wbqc-constraintreport-explanation-part-one')->escaped()
300 300
 			)
301 301
 			. Html::rawElement(
302 302
 				'p',
303 303
 				[],
304
-				$this->msg( 'wbqc-constraintreport-explanation-part-two' )->escaped()
304
+				$this->msg('wbqc-constraintreport-explanation-part-two')->escaped()
305 305
 			)
306 306
 		);
307 307
 	}
@@ -313,31 +313,31 @@  discard block
 block discarded – undo
313 313
 	 * @return string HTML
314 314
 	 * @suppress SecurityCheck-DoubleEscaped
315 315
 	 */
316
-	private function buildResultTable( EntityId $entityId, array $results ): string {
316
+	private function buildResultTable(EntityId $entityId, array $results): string {
317 317
 		// Set table headers
318 318
 		$table = new HtmlTableBuilder(
319 319
 			[
320 320
 				new HtmlTableHeaderBuilder(
321
-					$this->msg( 'wbqc-constraintreport-result-table-header-status' )->escaped(),
321
+					$this->msg('wbqc-constraintreport-result-table-header-status')->escaped(),
322 322
 					true
323 323
 				),
324 324
 				new HtmlTableHeaderBuilder(
325
-					$this->msg( 'wbqc-constraintreport-result-table-header-property' )->escaped(),
325
+					$this->msg('wbqc-constraintreport-result-table-header-property')->escaped(),
326 326
 					true
327 327
 				),
328 328
 				new HtmlTableHeaderBuilder(
329
-					$this->msg( 'wbqc-constraintreport-result-table-header-message' )->escaped(),
329
+					$this->msg('wbqc-constraintreport-result-table-header-message')->escaped(),
330 330
 					true
331 331
 				),
332 332
 				new HtmlTableHeaderBuilder(
333
-					$this->msg( 'wbqc-constraintreport-result-table-header-constraint' )->escaped(),
333
+					$this->msg('wbqc-constraintreport-result-table-header-constraint')->escaped(),
334 334
 					true
335 335
 				),
336 336
 			]
337 337
 		);
338 338
 
339
-		foreach ( $results as $result ) {
340
-			$table = $this->appendToResultTable( $table, $entityId, $result );
339
+		foreach ($results as $result) {
340
+			$table = $this->appendToResultTable($table, $entityId, $result);
341 341
 		}
342 342
 
343 343
 		return $table->toHtml();
@@ -349,40 +349,40 @@  discard block
 block discarded – undo
349 349
 		CheckResult $result
350 350
 	): HtmlTableBuilder {
351 351
 		$message = $result->getMessage();
352
-		if ( $message === null ) {
352
+		if ($message === null) {
353 353
 			// no row for this result
354 354
 			return $table;
355 355
 		}
356 356
 
357 357
 		// Status column
358
-		$statusColumn = $this->formatStatus( $result->getStatus() );
358
+		$statusColumn = $this->formatStatus($result->getStatus());
359 359
 
360 360
 		// Property column
361
-		$propertyId = new NumericPropertyId( $result->getContextCursor()->getSnakPropertyId() );
361
+		$propertyId = new NumericPropertyId($result->getContextCursor()->getSnakPropertyId());
362 362
 		$propertyColumn = $this->getClaimLink(
363 363
 			$entityId,
364 364
 			$propertyId,
365
-			$this->entityIdLabelFormatter->formatEntityId( $propertyId )
365
+			$this->entityIdLabelFormatter->formatEntityId($propertyId)
366 366
 		);
367 367
 
368 368
 		// Message column
369
-		$messageColumn = $this->violationMessageRenderer->render( $message );
369
+		$messageColumn = $this->violationMessageRenderer->render($message);
370 370
 
371 371
 		// Constraint column
372 372
 		$constraintTypeItemId = $result->getConstraint()->getConstraintTypeItemId();
373 373
 		try {
374
-			$constraintTypeLabel = $this->entityIdLabelFormatter->formatEntityId( new ItemId( $constraintTypeItemId ) );
375
-		} catch ( InvalidArgumentException $e ) {
376
-			$constraintTypeLabel = htmlspecialchars( $constraintTypeItemId );
374
+			$constraintTypeLabel = $this->entityIdLabelFormatter->formatEntityId(new ItemId($constraintTypeItemId));
375
+		} catch (InvalidArgumentException $e) {
376
+			$constraintTypeLabel = htmlspecialchars($constraintTypeItemId);
377 377
 		}
378 378
 		$constraintLink = $this->getClaimLink(
379 379
 			$propertyId,
380
-			new NumericPropertyId( $this->config->get( 'WBQualityConstraintsPropertyConstraintId' ) ),
380
+			new NumericPropertyId($this->config->get('WBQualityConstraintsPropertyConstraintId')),
381 381
 			$constraintTypeLabel
382 382
 		);
383 383
 		$constraintColumn = $this->buildExpandableElement(
384 384
 			$constraintLink,
385
-			$this->constraintParameterRenderer->formatParameters( $result->getParameters() ),
385
+			$this->constraintParameterRenderer->formatParameters($result->getParameters()),
386 386
 			'[...]'
387 387
 		);
388 388
 
@@ -422,15 +422,15 @@  discard block
 block discarded – undo
422 422
 	 *
423 423
 	 * @return string HTML
424 424
 	 */
425
-	protected function buildResultHeader( EntityId $entityId ): string {
426
-		$entityLink = sprintf( '%s (%s)',
427
-							   $this->entityIdLinkFormatter->formatEntityId( $entityId ),
428
-							   htmlspecialchars( $entityId->getSerialization() ) );
425
+	protected function buildResultHeader(EntityId $entityId): string {
426
+		$entityLink = sprintf('%s (%s)',
427
+							   $this->entityIdLinkFormatter->formatEntityId($entityId),
428
+							   htmlspecialchars($entityId->getSerialization()));
429 429
 
430 430
 		return Html::rawElement(
431 431
 			'h3',
432 432
 			[],
433
-			sprintf( '%s %s', $this->msg( 'wbqc-constraintreport-result-headline' )->escaped(), $entityLink )
433
+			sprintf('%s %s', $this->msg('wbqc-constraintreport-result-headline')->escaped(), $entityLink)
434 434
 		);
435 435
 	}
436 436
 
@@ -441,24 +441,24 @@  discard block
 block discarded – undo
441 441
 	 *
442 442
 	 * @return string HTML
443 443
 	 */
444
-	protected function buildSummary( array $results ): string {
444
+	protected function buildSummary(array $results): string {
445 445
 		$statuses = [];
446
-		foreach ( $results as $result ) {
447
-			$status = strtolower( $result->getStatus() );
448
-			$statuses[$status] = isset( $statuses[$status] ) ? $statuses[$status] + 1 : 1;
446
+		foreach ($results as $result) {
447
+			$status = strtolower($result->getStatus());
448
+			$statuses[$status] = isset($statuses[$status]) ? $statuses[$status] + 1 : 1;
449 449
 		}
450 450
 
451 451
 		$statusElements = [];
452
-		foreach ( $statuses as $status => $count ) {
453
-			if ( $count > 0 ) {
452
+		foreach ($statuses as $status => $count) {
453
+			if ($count > 0) {
454 454
 				$statusElements[] =
455
-					$this->formatStatus( $status )
455
+					$this->formatStatus($status)
456 456
 					. ': '
457 457
 					. $count;
458 458
 			}
459 459
 		}
460 460
 
461
-		return Html::rawElement( 'p', [], implode( ', ', $statusElements ) );
461
+		return Html::rawElement('p', [], implode(', ', $statusElements));
462 462
 	}
463 463
 
464 464
 	/**
@@ -478,7 +478,7 @@  discard block
 block discarded – undo
478 478
 		?string $expandableContent,
479 479
 		string $indicator
480 480
 	): string {
481
-		if ( empty( $expandableContent ) ) {
481
+		if (empty($expandableContent)) {
482 482
 			return $content;
483 483
 		}
484 484
 
@@ -498,7 +498,7 @@  discard block
 block discarded – undo
498 498
 			$expandableContent
499 499
 		);
500 500
 
501
-		return sprintf( '%s %s %s', $content, $tooltipIndicator, $wrappedExpandableContent );
501
+		return sprintf('%s %s %s', $content, $tooltipIndicator, $wrappedExpandableContent);
502 502
 	}
503 503
 
504 504
 	/**
@@ -510,8 +510,8 @@  discard block
 block discarded – undo
510 510
 	 *
511 511
 	 * @return string HTML
512 512
 	 */
513
-	private function formatStatus( string $status ): string {
514
-		$messageName = "wbqc-constraintreport-status-" . strtolower( $status );
513
+	private function formatStatus(string $status): string {
514
+		$messageName = "wbqc-constraintreport-status-".strtolower($status);
515 515
 		$statusIcons = [
516 516
 			CheckResult::STATUS_SUGGESTION => [
517 517
 				'icon' => 'suggestion-constraint-violation',
@@ -528,25 +528,25 @@  discard block
 block discarded – undo
528 528
 			],
529 529
 		];
530 530
 
531
-		if ( array_key_exists( $status, $statusIcons ) ) {
532
-			$iconWidget = new IconWidget( $statusIcons[$status] );
533
-			$iconHtml = $iconWidget->toString() . ' ';
531
+		if (array_key_exists($status, $statusIcons)) {
532
+			$iconWidget = new IconWidget($statusIcons[$status]);
533
+			$iconHtml = $iconWidget->toString().' ';
534 534
 		} else {
535 535
 			$iconHtml = '';
536 536
 		}
537 537
 
538
-		$labelWidget = new LabelWidget( [
539
-			'label' => $this->msg( $messageName )->text(),
540
-		] );
538
+		$labelWidget = new LabelWidget([
539
+			'label' => $this->msg($messageName)->text(),
540
+		]);
541 541
 		$labelHtml = $labelWidget->toString();
542 542
 
543 543
 		$formattedStatus =
544 544
 			Html::rawElement(
545 545
 				'span',
546 546
 				[
547
-					'class' => 'wbqc-status wbqc-status-' . $status,
547
+					'class' => 'wbqc-status wbqc-status-'.$status,
548 548
 				],
549
-				$iconHtml . $labelHtml
549
+				$iconHtml.$labelHtml
550 550
 			);
551 551
 
552 552
 		return $formattedStatus;
@@ -569,7 +569,7 @@  discard block
 block discarded – undo
569 569
 		return Html::rawElement(
570 570
 			'a',
571 571
 			[
572
-				'href' => $this->getClaimUrl( $entityId, $propertyId ),
572
+				'href' => $this->getClaimUrl($entityId, $propertyId),
573 573
 				'target' => '_blank',
574 574
 			],
575 575
 			$text
@@ -583,8 +583,8 @@  discard block
 block discarded – undo
583 583
 		EntityId $entityId,
584 584
 		NumericPropertyId $propertyId
585 585
 	): string {
586
-		$title = $this->entityTitleLookup->getTitleForId( $entityId );
587
-		$entityUrl = sprintf( '%s#%s', $title->getLocalURL(), $propertyId->getSerialization() );
586
+		$title = $this->entityTitleLookup->getTitleForId($entityId);
587
+		$entityUrl = sprintf('%s#%s', $title->getLocalURL(), $propertyId->getSerialization());
588 588
 
589 589
 		return $entityUrl;
590 590
 	}
Please login to merge, or discard this patch.
src/ConstraintRepositoryStore.php 1 patch
Spacing   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -24,16 +24,16 @@  discard block
 block discarded – undo
24 24
 	 * then using the main DBLoadBalancer service may be incorrect.
25 25
 	 * @param string|false $dbName Database name ($domain for ILoadBalancer methods).
26 26
 	 */
27
-	public function __construct( ILoadBalancer $lb, $dbName ) {
27
+	public function __construct(ILoadBalancer $lb, $dbName) {
28 28
 		$this->lb = $lb;
29 29
 		$this->dbName = $dbName;
30 30
 	}
31 31
 
32
-	private function encodeConstraintParameters( array $constraintParameters ) {
33
-		$json = json_encode( $constraintParameters, JSON_FORCE_OBJECT );
32
+	private function encodeConstraintParameters(array $constraintParameters) {
33
+		$json = json_encode($constraintParameters, JSON_FORCE_OBJECT);
34 34
 
35
-		if ( strlen( $json ) > 50000 ) {
36
-			$json = json_encode( [ '@error' => [ 'toolong' => true ] ] );
35
+		if (strlen($json) > 50000) {
36
+			$json = json_encode(['@error' => ['toolong' => true]]);
37 37
 		}
38 38
 
39 39
 		return $json;
@@ -45,21 +45,21 @@  discard block
 block discarded – undo
45 45
 	 * @throws DBUnexpectedError
46 46
 	 * @return bool
47 47
 	 */
48
-	public function insertBatch( array $constraints ) {
48
+	public function insertBatch(array $constraints) {
49 49
 		$accumulator = array_map(
50
-			function ( Constraint $constraint ) {
50
+			function(Constraint $constraint) {
51 51
 				return [
52 52
 					'constraint_guid' => $constraint->getConstraintId(),
53 53
 					'pid' => $constraint->getPropertyId()->getNumericId(),
54 54
 					'constraint_type_qid' => $constraint->getConstraintTypeItemId(),
55
-					'constraint_parameters' => $this->encodeConstraintParameters( $constraint->getConstraintParameters() ),
55
+					'constraint_parameters' => $this->encodeConstraintParameters($constraint->getConstraintParameters()),
56 56
 				];
57 57
 			},
58 58
 			$constraints
59 59
 		);
60 60
 
61
-		$dbw = $this->lb->getConnection( ILoadBalancer::DB_PRIMARY, [], $this->dbName );
62
-		return $dbw->insert( 'wbqc_constraints', $accumulator, __METHOD__ );
61
+		$dbw = $this->lb->getConnection(ILoadBalancer::DB_PRIMARY, [], $this->dbName);
62
+		return $dbw->insert('wbqc_constraints', $accumulator, __METHOD__);
63 63
 	}
64 64
 
65 65
 	/**
@@ -69,8 +69,8 @@  discard block
 block discarded – undo
69 69
 	 *
70 70
 	 * @throws DBUnexpectedError
71 71
 	 */
72
-	public function deleteForProperty( NumericPropertyId $propertyId ) {
73
-		$dbw = $this->lb->getConnection( ILoadBalancer::DB_PRIMARY, [], $this->dbName );
72
+	public function deleteForProperty(NumericPropertyId $propertyId) {
73
+		$dbw = $this->lb->getConnection(ILoadBalancer::DB_PRIMARY, [], $this->dbName);
74 74
 		$dbw->delete(
75 75
 			'wbqc_constraints',
76 76
 			[
Please login to merge, or discard this patch.
maintenance/ImportConstraintEntities.php 1 patch
Spacing   +59 added lines, -59 removed lines patch added patch discarded remove patch
@@ -18,10 +18,10 @@  discard block
 block discarded – undo
18 18
 use Wikibase\Repo\WikibaseRepo;
19 19
 
20 20
 // @codeCoverageIgnoreStart
21
-$basePath = getenv( "MW_INSTALL_PATH" ) !== false
22
-	? getenv( "MW_INSTALL_PATH" ) : __DIR__ . "/../../..";
21
+$basePath = getenv("MW_INSTALL_PATH") !== false
22
+	? getenv("MW_INSTALL_PATH") : __DIR__."/../../..";
23 23
 
24
-require_once $basePath . "/maintenance/Maintenance.php";
24
+require_once $basePath."/maintenance/Maintenance.php";
25 25
 // @codeCoverageIgnoreEnd
26 26
 
27 27
 /**
@@ -60,20 +60,20 @@  discard block
 block discarded – undo
60 60
 		parent::__construct();
61 61
 
62 62
 		$this->addDescription(
63
-			'Import entities needed for constraint checks ' .
63
+			'Import entities needed for constraint checks '.
64 64
 			'from Wikidata into the local repository.'
65 65
 		);
66 66
 		$this->addOption(
67 67
 			'config-format',
68
-			'The format in which the resulting configuration will be omitted: ' .
69
-			'"globals" for directly settings global variables, suitable for inclusion in LocalSettings.php (default), ' .
68
+			'The format in which the resulting configuration will be omitted: '.
69
+			'"globals" for directly settings global variables, suitable for inclusion in LocalSettings.php (default), '.
70 70
 			'or "wgConf" for printing parts of arrays suitable for inclusion in $wgConf->settings.'
71 71
 		);
72 72
 		$this->addOption(
73 73
 			'dry-run',
74 74
 			'Don’t actually import entities, just print which ones would be imported.'
75 75
 		);
76
-		$this->requireExtension( 'WikibaseQualityConstraints' );
76
+		$this->requireExtension('WikibaseQualityConstraints');
77 77
 	}
78 78
 
79 79
 	/**
@@ -81,12 +81,12 @@  discard block
 block discarded – undo
81 81
 	 */
82 82
 	private function setupServices() {
83 83
 		$services = MediaWikiServices::getInstance();
84
-		$this->entitySerializer = WikibaseRepo::getAllTypesEntitySerializer( $services );
85
-		$this->entityDeserializer = WikibaseRepo::getInternalFormatEntityDeserializer( $services );
86
-		$this->entityStore = WikibaseRepo::getEntityStore( $services );
84
+		$this->entitySerializer = WikibaseRepo::getAllTypesEntitySerializer($services);
85
+		$this->entityDeserializer = WikibaseRepo::getInternalFormatEntityDeserializer($services);
86
+		$this->entityStore = WikibaseRepo::getEntityStore($services);
87 87
 		$this->httpRequestFactory = $services->getHttpRequestFactory();
88
-		if ( !$this->getOption( 'dry-run', false ) ) {
89
-			$this->user = User::newSystemUser( 'WikibaseQualityConstraints importer' );
88
+		if (!$this->getOption('dry-run', false)) {
89
+			$this->user = User::newSystemUser('WikibaseQualityConstraints importer');
90 90
 		}
91 91
 	}
92 92
 
@@ -95,21 +95,21 @@  discard block
 block discarded – undo
95 95
 
96 96
 		$configUpdates = [];
97 97
 
98
-		$extensionJsonFile = __DIR__ . '/../extension.json';
99
-		$extensionJsonText = file_get_contents( $extensionJsonFile );
100
-		$extensionJson = json_decode( $extensionJsonText, /* assoc = */ true );
98
+		$extensionJsonFile = __DIR__.'/../extension.json';
99
+		$extensionJsonText = file_get_contents($extensionJsonFile);
100
+		$extensionJson = json_decode($extensionJsonText, /* assoc = */ true);
101 101
 		// @phan-suppress-next-line PhanTypeArraySuspiciousNullable
102
-		$wikidataEntityIds = $this->getEntitiesToImport( $extensionJson['config'], $this->getConfig() );
102
+		$wikidataEntityIds = $this->getEntitiesToImport($extensionJson['config'], $this->getConfig());
103 103
 
104
-		foreach ( $wikidataEntityIds as $key => $wikidataEntityId ) {
105
-			$localEntityId = $this->importEntityFromWikidata( $wikidataEntityId );
104
+		foreach ($wikidataEntityIds as $key => $wikidataEntityId) {
105
+			$localEntityId = $this->importEntityFromWikidata($wikidataEntityId);
106 106
 			$configUpdates[$key] = [
107 107
 				'wikidata' => $wikidataEntityId,
108 108
 				'local' => $localEntityId,
109 109
 			];
110 110
 		}
111 111
 
112
-		$this->outputConfigUpdates( $configUpdates );
112
+		$this->outputConfigUpdates($configUpdates);
113 113
 	}
114 114
 
115 115
 	/**
@@ -117,18 +117,18 @@  discard block
 block discarded – undo
117 117
 	 * @param Config $wikiConfig
118 118
 	 * @return string[]
119 119
 	 */
120
-	private function getEntitiesToImport( array $extensionJsonConfig, Config $wikiConfig ) {
120
+	private function getEntitiesToImport(array $extensionJsonConfig, Config $wikiConfig) {
121 121
 		$wikidataEntityIds = [];
122 122
 
123
-		foreach ( $extensionJsonConfig as $key => $value ) {
124
-			if ( !preg_match( '/Id$/', $key ) ) {
123
+		foreach ($extensionJsonConfig as $key => $value) {
124
+			if (!preg_match('/Id$/', $key)) {
125 125
 				continue;
126 126
 			}
127 127
 
128 128
 			$wikidataEntityId = $value['value'];
129
-			$localEntityId = $wikiConfig->get( $key );
129
+			$localEntityId = $wikiConfig->get($key);
130 130
 
131
-			if ( $localEntityId === $wikidataEntityId ) {
131
+			if ($localEntityId === $wikidataEntityId) {
132 132
 				$wikidataEntityIds[$key] = $wikidataEntityId;
133 133
 			}
134 134
 		}
@@ -140,10 +140,10 @@  discard block
 block discarded – undo
140 140
 	 * @param string $wikidataEntityId
141 141
 	 * @return string local entity ID
142 142
 	 */
143
-	private function importEntityFromWikidata( $wikidataEntityId ) {
143
+	private function importEntityFromWikidata($wikidataEntityId) {
144 144
 		$wikidataEntityUrl = "https://www.wikidata.org/wiki/Special:EntityData/$wikidataEntityId.json";
145
-		$wikidataEntitiesJson = $this->httpRequestFactory->get( $wikidataEntityUrl, [], __METHOD__ );
146
-		return $this->importEntityFromJson( $wikidataEntityId, $wikidataEntitiesJson );
145
+		$wikidataEntitiesJson = $this->httpRequestFactory->get($wikidataEntityUrl, [], __METHOD__);
146
+		return $this->importEntityFromJson($wikidataEntityId, $wikidataEntitiesJson);
147 147
 	}
148 148
 
149 149
 	/**
@@ -151,24 +151,24 @@  discard block
 block discarded – undo
151 151
 	 * @param string $wikidataEntitiesJson
152 152
 	 * @return string local entity ID
153 153
 	 */
154
-	private function importEntityFromJson( $wikidataEntityId, $wikidataEntitiesJson ) {
154
+	private function importEntityFromJson($wikidataEntityId, $wikidataEntitiesJson) {
155 155
 		// @phan-suppress-next-line PhanTypeArraySuspiciousNullable
156
-		$wikidataEntityArray = json_decode( $wikidataEntitiesJson, true )['entities'][$wikidataEntityId];
157
-		$wikidataEntity = $this->entityDeserializer->deserialize( $wikidataEntityArray );
156
+		$wikidataEntityArray = json_decode($wikidataEntitiesJson, true)['entities'][$wikidataEntityId];
157
+		$wikidataEntity = $this->entityDeserializer->deserialize($wikidataEntityArray);
158 158
 
159
-		$wikidataEntity->setId( null );
159
+		$wikidataEntity->setId(null);
160 160
 
161
-		if ( $wikidataEntity instanceof StatementListProvider ) {
161
+		if ($wikidataEntity instanceof StatementListProvider) {
162 162
 			$wikidataEntity->getStatements()->clear();
163 163
 		}
164 164
 
165
-		if ( $wikidataEntity instanceof Item ) {
166
-			$wikidataEntity->setSiteLinkList( new SiteLinkList() );
165
+		if ($wikidataEntity instanceof Item) {
166
+			$wikidataEntity->setSiteLinkList(new SiteLinkList());
167 167
 		}
168 168
 
169
-		if ( $this->getOption( 'dry-run', false ) ) {
170
-			$wikidataEntityJson = json_encode( $this->entitySerializer->serialize( $wikidataEntity ) );
171
-			$this->output( $wikidataEntityJson . "\n" );
169
+		if ($this->getOption('dry-run', false)) {
170
+			$wikidataEntityJson = json_encode($this->entitySerializer->serialize($wikidataEntity));
171
+			$this->output($wikidataEntityJson."\n");
172 172
 			return "-$wikidataEntityId";
173 173
 		}
174 174
 
@@ -181,12 +181,12 @@  discard block
 block discarded – undo
181 181
 			)->getEntity();
182 182
 
183 183
 			return $localEntity->getId()->getSerialization();
184
-		} catch ( StorageException $storageException ) {
185
-			return $this->storageExceptionToEntityId( $storageException );
184
+		} catch (StorageException $storageException) {
185
+			return $this->storageExceptionToEntityId($storageException);
186 186
 		}
187 187
 	}
188 188
 
189
-	private function storageExceptionToEntityId( StorageException $storageException ) {
189
+	private function storageExceptionToEntityId(StorageException $storageException) {
190 190
 		$message = $storageException->getMessage();
191 191
 		// example messages:
192 192
 		// * Item [[Item:Q475|Q475]] already has label "as references"
@@ -196,25 +196,25 @@  discard block
 block discarded – undo
196 196
 		// * Property [[Property:P694|P694]] already has label "instance of"
197 197
 		//   associated with language code en.
198 198
 		$pattern = '/[[|]([^][|]*)]] already has label .* associated with language code/';
199
-		if ( preg_match( $pattern, $message, $matches ) ) {
199
+		if (preg_match($pattern, $message, $matches)) {
200 200
 			return $matches[1];
201 201
 		} else {
202 202
 			throw $storageException;
203 203
 		}
204 204
 	}
205 205
 
206
-	private function outputConfigUpdates( array $configUpdates ) {
207
-		$configFormat = $this->getOption( 'config-format', 'globals' );
208
-		switch ( $configFormat ) {
206
+	private function outputConfigUpdates(array $configUpdates) {
207
+		$configFormat = $this->getOption('config-format', 'globals');
208
+		switch ($configFormat) {
209 209
 			case 'globals':
210
-				$this->outputConfigUpdatesGlobals( $configUpdates );
210
+				$this->outputConfigUpdatesGlobals($configUpdates);
211 211
 				break;
212 212
 			case 'wgConf':
213
-				$this->outputConfigUpdatesWgConf( $configUpdates );
213
+				$this->outputConfigUpdatesWgConf($configUpdates);
214 214
 				break;
215 215
 			default:
216
-				$this->error( "Invalid config format \"$configFormat\", using \"globals\"" );
217
-				$this->outputConfigUpdatesGlobals( $configUpdates );
216
+				$this->error("Invalid config format \"$configFormat\", using \"globals\"");
217
+				$this->outputConfigUpdatesGlobals($configUpdates);
218 218
 				break;
219 219
 		}
220 220
 	}
@@ -222,22 +222,22 @@  discard block
 block discarded – undo
222 222
 	/**
223 223
 	 * @param array[] $configUpdates
224 224
 	 */
225
-	private function outputConfigUpdatesGlobals( array $configUpdates ) {
226
-		foreach ( $configUpdates as $key => $value ) {
227
-			$localValueCode = var_export( $value['local'], true );
228
-			$this->output( "\$wg$key = $localValueCode;\n" );
225
+	private function outputConfigUpdatesGlobals(array $configUpdates) {
226
+		foreach ($configUpdates as $key => $value) {
227
+			$localValueCode = var_export($value['local'], true);
228
+			$this->output("\$wg$key = $localValueCode;\n");
229 229
 		}
230 230
 	}
231 231
 
232 232
 	/**
233 233
 	 * @param array[] $configUpdates
234 234
 	 */
235
-	private function outputConfigUpdatesWgConf( array $configUpdates ) {
236
-		$wikiIdCode = var_export( WikiMap::getCurrentWikiId(), true );
237
-		foreach ( $configUpdates as $key => $value ) {
238
-			$keyCode = var_export( "wg$key", true );
239
-			$wikidataValueCode = var_export( $value['wikidata'], true );
240
-			$localValueCode = var_export( $value['local'], true );
235
+	private function outputConfigUpdatesWgConf(array $configUpdates) {
236
+		$wikiIdCode = var_export(WikiMap::getCurrentWikiId(), true);
237
+		foreach ($configUpdates as $key => $value) {
238
+			$keyCode = var_export("wg$key", true);
239
+			$wikidataValueCode = var_export($value['wikidata'], true);
240
+			$localValueCode = var_export($value['local'], true);
241 241
 			$block = <<< EOF
242 242
 $keyCode => [
243 243
 	'default' => $wikidataValueCode,
@@ -246,7 +246,7 @@  discard block
 block discarded – undo
246 246
 
247 247
 
248 248
 EOF;
249
-			$this->output( $block );
249
+			$this->output($block);
250 250
 		}
251 251
 	}
252 252
 
Please login to merge, or discard this patch.
src/ServiceWiring.php 1 patch
Spacing   +143 added lines, -143 removed lines patch added patch discarded remove patch
@@ -30,53 +30,53 @@  discard block
 block discarded – undo
30 30
 use WikibaseQuality\ConstraintReport\ConstraintCheck\Result\CheckResultSerializer;
31 31
 
32 32
 return [
33
-	ConstraintsServices::EXPIRY_LOCK => static function ( MediaWikiServices $services ) {
34
-		return new ExpiryLock( ObjectCache::getInstance( CACHE_ANYTHING ) );
33
+	ConstraintsServices::EXPIRY_LOCK => static function(MediaWikiServices $services) {
34
+		return new ExpiryLock(ObjectCache::getInstance(CACHE_ANYTHING));
35 35
 	},
36 36
 
37
-	ConstraintsServices::LOGGING_HELPER => static function ( MediaWikiServices $services ) {
37
+	ConstraintsServices::LOGGING_HELPER => static function(MediaWikiServices $services) {
38 38
 		return new LoggingHelper(
39 39
 			$services->getStatsdDataFactory(),
40
-			LoggerFactory::getInstance( 'WikibaseQualityConstraints' ),
40
+			LoggerFactory::getInstance('WikibaseQualityConstraints'),
41 41
 			$services->getMainConfig()
42 42
 		);
43 43
 	},
44 44
 
45
-	ConstraintsServices::CONSTRAINT_STORE => static function ( MediaWikiServices $services ) {
46
-		$sourceDefinitions = WikibaseRepo::getEntitySourceDefinitions( $services );
47
-		$propertySource = $sourceDefinitions->getDatabaseSourceForEntityType( Property::ENTITY_TYPE );
48
-		if ( $propertySource === null ) {
49
-			throw new RuntimeException( 'Can\'t get a ConstraintStore for properties not stored in a database.' );
45
+	ConstraintsServices::CONSTRAINT_STORE => static function(MediaWikiServices $services) {
46
+		$sourceDefinitions = WikibaseRepo::getEntitySourceDefinitions($services);
47
+		$propertySource = $sourceDefinitions->getDatabaseSourceForEntityType(Property::ENTITY_TYPE);
48
+		if ($propertySource === null) {
49
+			throw new RuntimeException('Can\'t get a ConstraintStore for properties not stored in a database.');
50 50
 		}
51 51
 
52
-		$localEntitySourceName = WikibaseRepo::getLocalEntitySource( $services )->getSourceName();
53
-		if ( $propertySource->getSourceName() !== $localEntitySourceName ) {
54
-			throw new RuntimeException( 'Can\'t get a ConstraintStore for a non local entity source.' );
52
+		$localEntitySourceName = WikibaseRepo::getLocalEntitySource($services)->getSourceName();
53
+		if ($propertySource->getSourceName() !== $localEntitySourceName) {
54
+			throw new RuntimeException('Can\'t get a ConstraintStore for a non local entity source.');
55 55
 		}
56 56
 
57 57
 		$dbName = $propertySource->getDatabaseName();
58 58
 		return new ConstraintRepositoryStore(
59
-			$services->getDBLoadBalancerFactory()->getMainLB( $dbName ),
59
+			$services->getDBLoadBalancerFactory()->getMainLB($dbName),
60 60
 			$dbName
61 61
 		);
62 62
 	},
63 63
 
64
-	ConstraintsServices::CONSTRAINT_LOOKUP => static function ( MediaWikiServices $services ) {
65
-		$sourceDefinitions = WikibaseRepo::getEntitySourceDefinitions( $services );
66
-		$propertySource = $sourceDefinitions->getDatabaseSourceForEntityType( Property::ENTITY_TYPE );
67
-		if ( $propertySource === null ) {
68
-			throw new RuntimeException( 'Can\'t get a ConstraintStore for properties not stored in a database.' );
64
+	ConstraintsServices::CONSTRAINT_LOOKUP => static function(MediaWikiServices $services) {
65
+		$sourceDefinitions = WikibaseRepo::getEntitySourceDefinitions($services);
66
+		$propertySource = $sourceDefinitions->getDatabaseSourceForEntityType(Property::ENTITY_TYPE);
67
+		if ($propertySource === null) {
68
+			throw new RuntimeException('Can\'t get a ConstraintStore for properties not stored in a database.');
69 69
 		}
70 70
 
71 71
 		$dbName = $propertySource->getDatabaseName();
72 72
 		$rawLookup = new ConstraintRepositoryLookup(
73
-			$services->getDBLoadBalancerFactory()->getMainLB( $dbName ),
73
+			$services->getDBLoadBalancerFactory()->getMainLB($dbName),
74 74
 			$dbName
75 75
 		);
76
-		return new CachingConstraintLookup( $rawLookup );
76
+		return new CachingConstraintLookup($rawLookup);
77 77
 	},
78 78
 
79
-	ConstraintsServices::CHECK_RESULT_SERIALIZER => static function ( MediaWikiServices $services ) {
79
+	ConstraintsServices::CHECK_RESULT_SERIALIZER => static function(MediaWikiServices $services) {
80 80
 		return new CheckResultSerializer(
81 81
 			new ConstraintSerializer(
82 82
 				false // constraint parameters are not exposed
@@ -87,9 +87,9 @@  discard block
 block discarded – undo
87 87
 		);
88 88
 	},
89 89
 
90
-	ConstraintsServices::CHECK_RESULT_DESERIALIZER => static function ( MediaWikiServices $services ) {
91
-		$entityIdParser = WikibaseRepo::getEntityIdParser( $services );
92
-		$dataValueFactory = WikibaseRepo::getDataValueFactory( $services );
90
+	ConstraintsServices::CHECK_RESULT_DESERIALIZER => static function(MediaWikiServices $services) {
91
+		$entityIdParser = WikibaseRepo::getEntityIdParser($services);
92
+		$dataValueFactory = WikibaseRepo::getDataValueFactory($services);
93 93
 
94 94
 		return new CheckResultDeserializer(
95 95
 			new ConstraintDeserializer(),
@@ -102,13 +102,13 @@  discard block
 block discarded – undo
102 102
 		);
103 103
 	},
104 104
 
105
-	ConstraintsServices::VIOLATION_MESSAGE_SERIALIZER => static function ( MediaWikiServices $services ) {
105
+	ConstraintsServices::VIOLATION_MESSAGE_SERIALIZER => static function(MediaWikiServices $services) {
106 106
 		return new ViolationMessageSerializer();
107 107
 	},
108 108
 
109
-	ConstraintsServices::VIOLATION_MESSAGE_DESERIALIZER => static function ( MediaWikiServices $services ) {
110
-		$entityIdParser = WikibaseRepo::getEntityIdParser( $services );
111
-		$dataValueFactory = WikibaseRepo::getDataValueFactory( $services );
109
+	ConstraintsServices::VIOLATION_MESSAGE_DESERIALIZER => static function(MediaWikiServices $services) {
110
+		$entityIdParser = WikibaseRepo::getEntityIdParser($services);
111
+		$dataValueFactory = WikibaseRepo::getDataValueFactory($services);
112 112
 
113 113
 		return new ViolationMessageDeserializer(
114 114
 			$entityIdParser,
@@ -116,37 +116,37 @@  discard block
 block discarded – undo
116 116
 		);
117 117
 	},
118 118
 
119
-	ConstraintsServices::CONSTRAINT_PARAMETER_PARSER => static function ( MediaWikiServices $services ) {
120
-		$deserializerFactory = WikibaseRepo::getBaseDataModelDeserializerFactory( $services );
121
-		$entitySourceDefinitions = WikibaseRepo::getEntitySourceDefinitions( $services );
119
+	ConstraintsServices::CONSTRAINT_PARAMETER_PARSER => static function(MediaWikiServices $services) {
120
+		$deserializerFactory = WikibaseRepo::getBaseDataModelDeserializerFactory($services);
121
+		$entitySourceDefinitions = WikibaseRepo::getEntitySourceDefinitions($services);
122 122
 
123 123
 		return new ConstraintParameterParser(
124 124
 			$services->getMainConfig(),
125 125
 			$deserializerFactory,
126
-			$entitySourceDefinitions->getDatabaseSourceForEntityType( 'item' )->getConceptBaseUri()
126
+			$entitySourceDefinitions->getDatabaseSourceForEntityType('item')->getConceptBaseUri()
127 127
 		);
128 128
 	},
129 129
 
130
-	ConstraintsServices::CONNECTION_CHECKER_HELPER => static function ( MediaWikiServices $services ) {
130
+	ConstraintsServices::CONNECTION_CHECKER_HELPER => static function(MediaWikiServices $services) {
131 131
 		return new ConnectionCheckerHelper();
132 132
 	},
133 133
 
134
-	ConstraintsServices::RANGE_CHECKER_HELPER => static function ( MediaWikiServices $services ) {
134
+	ConstraintsServices::RANGE_CHECKER_HELPER => static function(MediaWikiServices $services) {
135 135
 		return new RangeCheckerHelper(
136 136
 			$services->getMainConfig(),
137
-			WikibaseRepo::getUnitConverter( $services )
137
+			WikibaseRepo::getUnitConverter($services)
138 138
 		);
139 139
 	},
140 140
 
141
-	ConstraintsServices::SPARQL_HELPER => static function ( MediaWikiServices $services ) {
142
-		$endpoint = $services->getMainConfig()->get( 'WBQualityConstraintsSparqlEndpoint' );
143
-		if ( $endpoint === '' ) {
141
+	ConstraintsServices::SPARQL_HELPER => static function(MediaWikiServices $services) {
142
+		$endpoint = $services->getMainConfig()->get('WBQualityConstraintsSparqlEndpoint');
143
+		if ($endpoint === '') {
144 144
 			return new DummySparqlHelper();
145 145
 		}
146 146
 
147
-		$rdfVocabulary = WikibaseRepo::getRdfVocabulary( $services );
148
-		$entityIdParser = WikibaseRepo::getEntityIdParser( $services );
149
-		$propertyDataTypeLookup = WikibaseRepo::getPropertyDataTypeLookup( $services );
147
+		$rdfVocabulary = WikibaseRepo::getRdfVocabulary($services);
148
+		$entityIdParser = WikibaseRepo::getEntityIdParser($services);
149
+		$propertyDataTypeLookup = WikibaseRepo::getPropertyDataTypeLookup($services);
150 150
 
151 151
 		return new SparqlHelper(
152 152
 			$services->getMainConfig(),
@@ -154,126 +154,126 @@  discard block
 block discarded – undo
154 154
 			$entityIdParser,
155 155
 			$propertyDataTypeLookup,
156 156
 			$services->getMainWANObjectCache(),
157
-			ConstraintsServices::getViolationMessageSerializer( $services ),
158
-			ConstraintsServices::getViolationMessageDeserializer( $services ),
157
+			ConstraintsServices::getViolationMessageSerializer($services),
158
+			ConstraintsServices::getViolationMessageDeserializer($services),
159 159
 			$services->getStatsdDataFactory(),
160
-			ConstraintsServices::getExpiryLock( $services ),
161
-			ConstraintsServices::getLoggingHelper( $services ),
162
-			WikiMap::getCurrentWikiId() . ' WikibaseQualityConstraints ' . $services->getHttpRequestFactory()->getUserAgent(),
160
+			ConstraintsServices::getExpiryLock($services),
161
+			ConstraintsServices::getLoggingHelper($services),
162
+			WikiMap::getCurrentWikiId().' WikibaseQualityConstraints '.$services->getHttpRequestFactory()->getUserAgent(),
163 163
 			$services->getHttpRequestFactory()
164 164
 		);
165 165
 	},
166 166
 
167
-	ConstraintsServices::TYPE_CHECKER_HELPER => static function ( MediaWikiServices $services ) {
167
+	ConstraintsServices::TYPE_CHECKER_HELPER => static function(MediaWikiServices $services) {
168 168
 		return new TypeCheckerHelper(
169
-			WikibaseServices::getEntityLookup( $services ),
169
+			WikibaseServices::getEntityLookup($services),
170 170
 			$services->getMainConfig(),
171
-			ConstraintsServices::getSparqlHelper( $services ),
171
+			ConstraintsServices::getSparqlHelper($services),
172 172
 			$services->getStatsdDataFactory()
173 173
 		);
174 174
 	},
175 175
 
176
-	ConstraintsServices::DELEGATING_CONSTRAINT_CHECKER => static function ( MediaWikiServices $services ) {
177
-		$statementGuidParser = WikibaseRepo::getStatementGuidParser( $services );
176
+	ConstraintsServices::DELEGATING_CONSTRAINT_CHECKER => static function(MediaWikiServices $services) {
177
+		$statementGuidParser = WikibaseRepo::getStatementGuidParser($services);
178 178
 
179 179
 		$config = $services->getMainConfig();
180 180
 		$checkerMap = [
181
-			$config->get( 'WBQualityConstraintsConflictsWithConstraintId' )
182
-				=> ConstraintCheckerServices::getConflictsWithChecker( $services ),
183
-			$config->get( 'WBQualityConstraintsItemRequiresClaimConstraintId' )
184
-				=> ConstraintCheckerServices::getItemChecker( $services ),
185
-			$config->get( 'WBQualityConstraintsValueRequiresClaimConstraintId' )
186
-				=> ConstraintCheckerServices::getTargetRequiredClaimChecker( $services ),
187
-			$config->get( 'WBQualityConstraintsSymmetricConstraintId' )
188
-				=> ConstraintCheckerServices::getSymmetricChecker( $services ),
189
-			$config->get( 'WBQualityConstraintsInverseConstraintId' )
190
-				=> ConstraintCheckerServices::getInverseChecker( $services ),
191
-			$config->get( 'WBQualityConstraintsUsedAsQualifierConstraintId' )
192
-				=> ConstraintCheckerServices::getQualifierChecker( $services ),
193
-			$config->get( 'WBQualityConstraintsAllowedQualifiersConstraintId' )
194
-				=> ConstraintCheckerServices::getQualifiersChecker( $services ),
195
-			$config->get( 'WBQualityConstraintsMandatoryQualifierConstraintId' )
196
-				=> ConstraintCheckerServices::getMandatoryQualifiersChecker( $services ),
197
-			$config->get( 'WBQualityConstraintsRangeConstraintId' )
198
-				=> ConstraintCheckerServices::getRangeChecker( $services ),
199
-			$config->get( 'WBQualityConstraintsDifferenceWithinRangeConstraintId' )
200
-				=> ConstraintCheckerServices::getDiffWithinRangeChecker( $services ),
201
-			$config->get( 'WBQualityConstraintsTypeConstraintId' )
202
-				=> ConstraintCheckerServices::getTypeChecker( $services ),
203
-			$config->get( 'WBQualityConstraintsValueTypeConstraintId' )
204
-				=> ConstraintCheckerServices::getValueTypeChecker( $services ),
205
-			$config->get( 'WBQualityConstraintsSingleValueConstraintId' )
206
-				=> ConstraintCheckerServices::getSingleValueChecker( $services ),
207
-			$config->get( 'WBQualityConstraintsMultiValueConstraintId' )
208
-				=> ConstraintCheckerServices::getMultiValueChecker( $services ),
209
-			$config->get( 'WBQualityConstraintsDistinctValuesConstraintId' )
210
-				=> ConstraintCheckerServices::getUniqueValueChecker( $services ),
211
-			$config->get( 'WBQualityConstraintsFormatConstraintId' )
212
-				=> ConstraintCheckerServices::getFormatChecker( $services ),
213
-			$config->get( 'WBQualityConstraintsCommonsLinkConstraintId' )
214
-				=> ConstraintCheckerServices::getCommonsLinkChecker( $services ),
215
-			$config->get( 'WBQualityConstraintsOneOfConstraintId' )
216
-				=> ConstraintCheckerServices::getOneOfChecker( $services ),
217
-			$config->get( 'WBQualityConstraintsUsedForValuesOnlyConstraintId' )
218
-				=> ConstraintCheckerServices::getValueOnlyChecker( $services ),
219
-			$config->get( 'WBQualityConstraintsUsedAsReferenceConstraintId' )
220
-				=> ConstraintCheckerServices::getReferenceChecker( $services ),
221
-			$config->get( 'WBQualityConstraintsNoBoundsConstraintId' )
222
-				=> ConstraintCheckerServices::getNoBoundsChecker( $services ),
223
-			$config->get( 'WBQualityConstraintsAllowedUnitsConstraintId' )
224
-				=> ConstraintCheckerServices::getAllowedUnitsChecker( $services ),
225
-			$config->get( 'WBQualityConstraintsSingleBestValueConstraintId' )
226
-				=> ConstraintCheckerServices::getSingleBestValueChecker( $services ),
227
-			$config->get( 'WBQualityConstraintsAllowedEntityTypesConstraintId' )
228
-				=> ConstraintCheckerServices::getEntityTypeChecker( $services ),
229
-			$config->get( 'WBQualityConstraintsNoneOfConstraintId' )
230
-				=> ConstraintCheckerServices::getNoneOfChecker( $services ),
231
-			$config->get( 'WBQualityConstraintsIntegerConstraintId' )
232
-				=> ConstraintCheckerServices::getIntegerChecker( $services ),
233
-			$config->get( 'WBQualityConstraintsCitationNeededConstraintId' )
234
-				=> ConstraintCheckerServices::getCitationNeededChecker( $services ),
235
-			$config->get( 'WBQualityConstraintsPropertyScopeConstraintId' )
236
-				=> ConstraintCheckerServices::getPropertyScopeChecker( $services ),
237
-			$config->get( 'WBQualityConstraintsContemporaryConstraintId' )
238
-				=> ConstraintCheckerServices::getContemporaryChecker( $services ),
239
-			$config->get( 'WBQualityConstraintsLexemeLanguageConstraintId' )
240
-				=> ConstraintCheckerServices::getLexemeLanguageChecker( $services ),
241
-			$config->get( 'WBQualityConstraintsLabelInLanguageConstraintId' )
242
-				=> ConstraintCheckerServices::getLabelInLanguageChecker( $services ),
181
+			$config->get('WBQualityConstraintsConflictsWithConstraintId')
182
+				=> ConstraintCheckerServices::getConflictsWithChecker($services),
183
+			$config->get('WBQualityConstraintsItemRequiresClaimConstraintId')
184
+				=> ConstraintCheckerServices::getItemChecker($services),
185
+			$config->get('WBQualityConstraintsValueRequiresClaimConstraintId')
186
+				=> ConstraintCheckerServices::getTargetRequiredClaimChecker($services),
187
+			$config->get('WBQualityConstraintsSymmetricConstraintId')
188
+				=> ConstraintCheckerServices::getSymmetricChecker($services),
189
+			$config->get('WBQualityConstraintsInverseConstraintId')
190
+				=> ConstraintCheckerServices::getInverseChecker($services),
191
+			$config->get('WBQualityConstraintsUsedAsQualifierConstraintId')
192
+				=> ConstraintCheckerServices::getQualifierChecker($services),
193
+			$config->get('WBQualityConstraintsAllowedQualifiersConstraintId')
194
+				=> ConstraintCheckerServices::getQualifiersChecker($services),
195
+			$config->get('WBQualityConstraintsMandatoryQualifierConstraintId')
196
+				=> ConstraintCheckerServices::getMandatoryQualifiersChecker($services),
197
+			$config->get('WBQualityConstraintsRangeConstraintId')
198
+				=> ConstraintCheckerServices::getRangeChecker($services),
199
+			$config->get('WBQualityConstraintsDifferenceWithinRangeConstraintId')
200
+				=> ConstraintCheckerServices::getDiffWithinRangeChecker($services),
201
+			$config->get('WBQualityConstraintsTypeConstraintId')
202
+				=> ConstraintCheckerServices::getTypeChecker($services),
203
+			$config->get('WBQualityConstraintsValueTypeConstraintId')
204
+				=> ConstraintCheckerServices::getValueTypeChecker($services),
205
+			$config->get('WBQualityConstraintsSingleValueConstraintId')
206
+				=> ConstraintCheckerServices::getSingleValueChecker($services),
207
+			$config->get('WBQualityConstraintsMultiValueConstraintId')
208
+				=> ConstraintCheckerServices::getMultiValueChecker($services),
209
+			$config->get('WBQualityConstraintsDistinctValuesConstraintId')
210
+				=> ConstraintCheckerServices::getUniqueValueChecker($services),
211
+			$config->get('WBQualityConstraintsFormatConstraintId')
212
+				=> ConstraintCheckerServices::getFormatChecker($services),
213
+			$config->get('WBQualityConstraintsCommonsLinkConstraintId')
214
+				=> ConstraintCheckerServices::getCommonsLinkChecker($services),
215
+			$config->get('WBQualityConstraintsOneOfConstraintId')
216
+				=> ConstraintCheckerServices::getOneOfChecker($services),
217
+			$config->get('WBQualityConstraintsUsedForValuesOnlyConstraintId')
218
+				=> ConstraintCheckerServices::getValueOnlyChecker($services),
219
+			$config->get('WBQualityConstraintsUsedAsReferenceConstraintId')
220
+				=> ConstraintCheckerServices::getReferenceChecker($services),
221
+			$config->get('WBQualityConstraintsNoBoundsConstraintId')
222
+				=> ConstraintCheckerServices::getNoBoundsChecker($services),
223
+			$config->get('WBQualityConstraintsAllowedUnitsConstraintId')
224
+				=> ConstraintCheckerServices::getAllowedUnitsChecker($services),
225
+			$config->get('WBQualityConstraintsSingleBestValueConstraintId')
226
+				=> ConstraintCheckerServices::getSingleBestValueChecker($services),
227
+			$config->get('WBQualityConstraintsAllowedEntityTypesConstraintId')
228
+				=> ConstraintCheckerServices::getEntityTypeChecker($services),
229
+			$config->get('WBQualityConstraintsNoneOfConstraintId')
230
+				=> ConstraintCheckerServices::getNoneOfChecker($services),
231
+			$config->get('WBQualityConstraintsIntegerConstraintId')
232
+				=> ConstraintCheckerServices::getIntegerChecker($services),
233
+			$config->get('WBQualityConstraintsCitationNeededConstraintId')
234
+				=> ConstraintCheckerServices::getCitationNeededChecker($services),
235
+			$config->get('WBQualityConstraintsPropertyScopeConstraintId')
236
+				=> ConstraintCheckerServices::getPropertyScopeChecker($services),
237
+			$config->get('WBQualityConstraintsContemporaryConstraintId')
238
+				=> ConstraintCheckerServices::getContemporaryChecker($services),
239
+			$config->get('WBQualityConstraintsLexemeLanguageConstraintId')
240
+				=> ConstraintCheckerServices::getLexemeLanguageChecker($services),
241
+			$config->get('WBQualityConstraintsLabelInLanguageConstraintId')
242
+				=> ConstraintCheckerServices::getLabelInLanguageChecker($services),
243 243
 		];
244 244
 
245 245
 		return new DelegatingConstraintChecker(
246
-			WikibaseServices::getEntityLookup( $services ),
246
+			WikibaseServices::getEntityLookup($services),
247 247
 			$checkerMap,
248
-			ConstraintsServices::getConstraintLookup( $services ),
249
-			ConstraintsServices::getConstraintParameterParser( $services ),
248
+			ConstraintsServices::getConstraintLookup($services),
249
+			ConstraintsServices::getConstraintParameterParser($services),
250 250
 			$statementGuidParser,
251
-			ConstraintsServices::getLoggingHelper( $services ),
252
-			$config->get( 'WBQualityConstraintsCheckQualifiers' ),
253
-			$config->get( 'WBQualityConstraintsCheckReferences' ),
254
-			$config->get( 'WBQualityConstraintsPropertiesWithViolatingQualifiers' )
251
+			ConstraintsServices::getLoggingHelper($services),
252
+			$config->get('WBQualityConstraintsCheckQualifiers'),
253
+			$config->get('WBQualityConstraintsCheckReferences'),
254
+			$config->get('WBQualityConstraintsPropertiesWithViolatingQualifiers')
255 255
 		);
256 256
 	},
257 257
 
258
-	ConstraintsServices::RESULTS_SOURCE => static function ( MediaWikiServices $services ) {
258
+	ConstraintsServices::RESULTS_SOURCE => static function(MediaWikiServices $services) {
259 259
 		$config = $services->getMainConfig();
260 260
 		$resultsSource = new CheckingResultsSource(
261
-			ConstraintsServices::getDelegatingConstraintChecker( $services )
261
+			ConstraintsServices::getDelegatingConstraintChecker($services)
262 262
 		);
263 263
 
264 264
 		$cacheCheckConstraintsResults = false;
265 265
 
266
-		if ( $config->get( 'WBQualityConstraintsCacheCheckConstraintsResults' ) ) {
266
+		if ($config->get('WBQualityConstraintsCacheCheckConstraintsResults')) {
267 267
 			$cacheCheckConstraintsResults = true;
268 268
 			// check that we can use getLocalRepoWikiPageMetaDataAccessor()
269 269
 			// TODO we should always be able to cache constraint check results (T244726)
270
-			$entitySources = WikibaseRepo::getEntitySourceDefinitions( $services )->getSources();
271
-			$localEntitySourceName = WikibaseRepo::getLocalEntitySource( $services )->getSourceName();
270
+			$entitySources = WikibaseRepo::getEntitySourceDefinitions($services)->getSources();
271
+			$localEntitySourceName = WikibaseRepo::getLocalEntitySource($services)->getSourceName();
272 272
 
273
-			foreach ( $entitySources as $entitySource ) {
274
-				if ( $entitySource->getSourceName() !== $localEntitySourceName ) {
275
-					LoggerFactory::getInstance( 'WikibaseQualityConstraints' )->warning(
276
-						'Cannot cache constraint check results for non-local source: ' .
273
+			foreach ($entitySources as $entitySource) {
274
+				if ($entitySource->getSourceName() !== $localEntitySourceName) {
275
+					LoggerFactory::getInstance('WikibaseQualityConstraints')->warning(
276
+						'Cannot cache constraint check results for non-local source: '.
277 277
 						$entitySource->getSourceName()
278 278
 					);
279 279
 					$cacheCheckConstraintsResults = false;
@@ -282,40 +282,40 @@  discard block
 block discarded – undo
282 282
 			}
283 283
 		}
284 284
 
285
-		if ( $cacheCheckConstraintsResults ) {
285
+		if ($cacheCheckConstraintsResults) {
286 286
 			$possiblyStaleConstraintTypes = [
287
-				$config->get( 'WBQualityConstraintsCommonsLinkConstraintId' ),
288
-				$config->get( 'WBQualityConstraintsTypeConstraintId' ),
289
-				$config->get( 'WBQualityConstraintsValueTypeConstraintId' ),
290
-				$config->get( 'WBQualityConstraintsDistinctValuesConstraintId' ),
287
+				$config->get('WBQualityConstraintsCommonsLinkConstraintId'),
288
+				$config->get('WBQualityConstraintsTypeConstraintId'),
289
+				$config->get('WBQualityConstraintsValueTypeConstraintId'),
290
+				$config->get('WBQualityConstraintsDistinctValuesConstraintId'),
291 291
 			];
292
-			$entityIdParser = WikibaseRepo::getEntityIdParser( $services );
292
+			$entityIdParser = WikibaseRepo::getEntityIdParser($services);
293 293
 			$wikiPageEntityMetaDataAccessor = WikibaseRepo::getLocalRepoWikiPageMetaDataAccessor(
294 294
 				$services );
295 295
 
296 296
 			$resultsSource = new CachingResultsSource(
297 297
 				$resultsSource,
298 298
 				ResultsCache::getDefaultInstance(),
299
-				ConstraintsServices::getCheckResultSerializer( $services ),
300
-				ConstraintsServices::getCheckResultDeserializer( $services ),
299
+				ConstraintsServices::getCheckResultSerializer($services),
300
+				ConstraintsServices::getCheckResultDeserializer($services),
301 301
 				$wikiPageEntityMetaDataAccessor,
302 302
 				$entityIdParser,
303
-				$config->get( 'WBQualityConstraintsCacheCheckConstraintsTTLSeconds' ),
303
+				$config->get('WBQualityConstraintsCacheCheckConstraintsTTLSeconds'),
304 304
 				$possiblyStaleConstraintTypes,
305
-				$config->get( 'WBQualityConstraintsCacheCheckConstraintsMaximumRevisionIds' ),
306
-				ConstraintsServices::getLoggingHelper( $services )
305
+				$config->get('WBQualityConstraintsCacheCheckConstraintsMaximumRevisionIds'),
306
+				ConstraintsServices::getLoggingHelper($services)
307 307
 			);
308 308
 		}
309 309
 
310 310
 		return $resultsSource;
311 311
 	},
312 312
 
313
-	ConstraintsServices::VIOLATION_MESSAGE_RENDERER_FACTORY => static function ( MediaWikiServices $services ) {
313
+	ConstraintsServices::VIOLATION_MESSAGE_RENDERER_FACTORY => static function(MediaWikiServices $services) {
314 314
 		return new ViolationMessageRendererFactory(
315 315
 			$services->getMainConfig(),
316 316
 			$services->getLanguageNameUtils(),
317
-			WikibaseRepo::getEntityIdHtmlLinkFormatterFactory( $services ),
318
-			WikibaseRepo::getValueFormatterFactory( $services )
317
+			WikibaseRepo::getEntityIdHtmlLinkFormatterFactory($services),
318
+			WikibaseRepo::getValueFormatterFactory($services)
319 319
 		);
320 320
 	},
321 321
 ];
Please login to merge, or discard this patch.
src/ConstraintCheck/Helper/SparqlHelper.php 1 patch
Spacing   +176 added lines, -179 removed lines patch added patch discarded remove patch
@@ -200,73 +200,73 @@  discard block
 block discarded – undo
200 200
 		$this->defaultUserAgent = $defaultUserAgent;
201 201
 		$this->requestFactory = $requestFactory;
202 202
 		$this->entityPrefixes = [];
203
-		foreach ( $rdfVocabulary->entityNamespaceNames as $namespaceName ) {
204
-			$this->entityPrefixes[] = $rdfVocabulary->getNamespaceURI( $namespaceName );
203
+		foreach ($rdfVocabulary->entityNamespaceNames as $namespaceName) {
204
+			$this->entityPrefixes[] = $rdfVocabulary->getNamespaceURI($namespaceName);
205 205
 		}
206 206
 
207
-		$this->endpoint = $config->get( 'WBQualityConstraintsSparqlEndpoint' );
208
-		$this->maxQueryTimeMillis = $config->get( 'WBQualityConstraintsSparqlMaxMillis' );
209
-		$this->instanceOfId = $config->get( 'WBQualityConstraintsInstanceOfId' );
210
-		$this->subclassOfId = $config->get( 'WBQualityConstraintsSubclassOfId' );
211
-		$this->cacheMapSize = $config->get( 'WBQualityConstraintsFormatCacheMapSize' );
207
+		$this->endpoint = $config->get('WBQualityConstraintsSparqlEndpoint');
208
+		$this->maxQueryTimeMillis = $config->get('WBQualityConstraintsSparqlMaxMillis');
209
+		$this->instanceOfId = $config->get('WBQualityConstraintsInstanceOfId');
210
+		$this->subclassOfId = $config->get('WBQualityConstraintsSubclassOfId');
211
+		$this->cacheMapSize = $config->get('WBQualityConstraintsFormatCacheMapSize');
212 212
 		$this->timeoutExceptionClasses = $config->get(
213 213
 			'WBQualityConstraintsSparqlTimeoutExceptionClasses'
214 214
 		);
215 215
 		$this->sparqlHasWikibaseSupport = $config->get(
216 216
 			'WBQualityConstraintsSparqlHasWikibaseSupport'
217 217
 		);
218
-		$this->sparqlThrottlingFallbackDuration = (int)$config->get(
218
+		$this->sparqlThrottlingFallbackDuration = (int) $config->get(
219 219
 			'WBQualityConstraintsSparqlThrottlingFallbackDuration'
220 220
 		);
221 221
 
222
-		$this->prefixes = $this->getQueryPrefixes( $rdfVocabulary );
222
+		$this->prefixes = $this->getQueryPrefixes($rdfVocabulary);
223 223
 	}
224 224
 
225
-	private function getQueryPrefixes( RdfVocabulary $rdfVocabulary ) {
225
+	private function getQueryPrefixes(RdfVocabulary $rdfVocabulary) {
226 226
 		// TODO: it would probably be smarter that RdfVocubulary exposed these prefixes somehow
227 227
 		$prefixes = '';
228
-		foreach ( $rdfVocabulary->entityNamespaceNames as $sourceName => $namespaceName ) {
228
+		foreach ($rdfVocabulary->entityNamespaceNames as $sourceName => $namespaceName) {
229 229
 			$prefixes .= <<<END
230
-PREFIX {$namespaceName}: <{$rdfVocabulary->getNamespaceURI( $namespaceName )}>\n
230
+PREFIX {$namespaceName}: <{$rdfVocabulary->getNamespaceURI($namespaceName)}>\n
231 231
 END;
232 232
 		}
233 233
 		$prefixes .= <<<END
234
-PREFIX wds: <{$rdfVocabulary->getNamespaceURI( RdfVocabulary::NS_STATEMENT )}>
235
-PREFIX wdv: <{$rdfVocabulary->getNamespaceURI( RdfVocabulary::NS_VALUE )}>\n
234
+PREFIX wds: <{$rdfVocabulary->getNamespaceURI(RdfVocabulary::NS_STATEMENT)}>
235
+PREFIX wdv: <{$rdfVocabulary->getNamespaceURI(RdfVocabulary::NS_VALUE)}>\n
236 236
 END;
237 237
 
238
-		foreach ( $rdfVocabulary->propertyNamespaceNames as $sourceName => $sourceNamespaces ) {
238
+		foreach ($rdfVocabulary->propertyNamespaceNames as $sourceName => $sourceNamespaces) {
239 239
 			$namespaceName = $sourceNamespaces[RdfVocabulary::NSP_DIRECT_CLAIM];
240 240
 			$prefixes .= <<<END
241
-PREFIX {$namespaceName}: <{$rdfVocabulary->getNamespaceURI( $namespaceName )}>\n
241
+PREFIX {$namespaceName}: <{$rdfVocabulary->getNamespaceURI($namespaceName)}>\n
242 242
 END;
243 243
 			$namespaceName = $sourceNamespaces[RdfVocabulary::NSP_CLAIM];
244 244
 			$prefixes .= <<<END
245
-PREFIX {$namespaceName}: <{$rdfVocabulary->getNamespaceURI( $namespaceName )}>\n
245
+PREFIX {$namespaceName}: <{$rdfVocabulary->getNamespaceURI($namespaceName)}>\n
246 246
 END;
247 247
 			$namespaceName = $sourceNamespaces[RdfVocabulary::NSP_CLAIM_STATEMENT];
248 248
 			$prefixes .= <<<END
249
-PREFIX {$namespaceName}: <{$rdfVocabulary->getNamespaceURI( $namespaceName )}>\n
249
+PREFIX {$namespaceName}: <{$rdfVocabulary->getNamespaceURI($namespaceName)}>\n
250 250
 END;
251 251
 			$namespaceName = $sourceNamespaces[RdfVocabulary::NSP_QUALIFIER];
252 252
 			$prefixes .= <<<END
253
-PREFIX {$namespaceName}: <{$rdfVocabulary->getNamespaceURI( $namespaceName )}>\n
253
+PREFIX {$namespaceName}: <{$rdfVocabulary->getNamespaceURI($namespaceName)}>\n
254 254
 END;
255 255
 			$namespaceName = $sourceNamespaces[RdfVocabulary::NSP_QUALIFIER_VALUE];
256 256
 			$prefixes .= <<<END
257
-PREFIX {$namespaceName}: <{$rdfVocabulary->getNamespaceURI( $namespaceName )}>\n
257
+PREFIX {$namespaceName}: <{$rdfVocabulary->getNamespaceURI($namespaceName)}>\n
258 258
 END;
259 259
 			$namespaceName = $sourceNamespaces[RdfVocabulary::NSP_REFERENCE];
260 260
 			$prefixes .= <<<END
261
-PREFIX {$namespaceName}: <{$rdfVocabulary->getNamespaceURI( $namespaceName )}>\n
261
+PREFIX {$namespaceName}: <{$rdfVocabulary->getNamespaceURI($namespaceName)}>\n
262 262
 END;
263 263
 			$namespaceName = $sourceNamespaces[RdfVocabulary::NSP_REFERENCE_VALUE];
264 264
 			$prefixes .= <<<END
265
-PREFIX {$namespaceName}: <{$rdfVocabulary->getNamespaceURI( $namespaceName )}>\n
265
+PREFIX {$namespaceName}: <{$rdfVocabulary->getNamespaceURI($namespaceName)}>\n
266 266
 END;
267 267
 		}
268 268
 		$prefixes .= <<<END
269
-PREFIX wikibase: <{$rdfVocabulary->getNamespaceURI( RdfVocabulary::NS_ONTOLOGY )}>\n
269
+PREFIX wikibase: <{$rdfVocabulary->getNamespaceURI(RdfVocabulary::NS_ONTOLOGY)}>\n
270 270
 END;
271 271
 		return $prefixes;
272 272
 	}
@@ -278,21 +278,20 @@  discard block
 block discarded – undo
278 278
 	 * @return CachedBool
279 279
 	 * @throws SparqlHelperException if the query times out or some other error occurs
280 280
 	 */
281
-	public function hasType( $id, array $classes ) {
281
+	public function hasType($id, array $classes) {
282 282
 		// TODO hint:gearing is a workaround for T168973 and can hopefully be removed eventually
283 283
 		$gearingHint = $this->sparqlHasWikibaseSupport ?
284
-			' hint:Prior hint:gearing "forward".' :
285
-			'';
284
+			' hint:Prior hint:gearing "forward".' : '';
286 285
 
287 286
 		$metadatas = [];
288 287
 
289
-		foreach ( array_chunk( $classes, 20 ) as $classesChunk ) {
290
-			$classesValues = implode( ' ', array_map(
291
-				static function ( $class ) {
292
-					return 'wd:' . $class;
288
+		foreach (array_chunk($classes, 20) as $classesChunk) {
289
+			$classesValues = implode(' ', array_map(
290
+				static function($class) {
291
+					return 'wd:'.$class;
293 292
 				},
294 293
 				$classesChunk
295
-			) );
294
+			));
296 295
 
297 296
 			$query = <<<EOF
298 297
 ASK {
@@ -302,19 +301,19 @@  discard block
 block discarded – undo
302 301
 }
303 302
 EOF;
304 303
 
305
-			$result = $this->runQuery( $query );
304
+			$result = $this->runQuery($query);
306 305
 			$metadatas[] = $result->getMetadata();
307
-			if ( $result->getArray()['boolean'] ) {
306
+			if ($result->getArray()['boolean']) {
308 307
 				return new CachedBool(
309 308
 					true,
310
-					Metadata::merge( $metadatas )
309
+					Metadata::merge($metadatas)
311 310
 				);
312 311
 			}
313 312
 		}
314 313
 
315 314
 		return new CachedBool(
316 315
 			false,
317
-			Metadata::merge( $metadatas )
316
+			Metadata::merge($metadatas)
318 317
 		);
319 318
 	}
320 319
 
@@ -325,7 +324,7 @@  discard block
 block discarded – undo
325 324
 	 * @param PropertyId $separator
326 325
 	 * @return string
327 326
 	 */
328
-	private function nestedSeparatorFilter( PropertyId $separator ) {
327
+	private function nestedSeparatorFilter(PropertyId $separator) {
329 328
 		$filter = <<<EOF
330 329
   MINUS {
331 330
     ?statement pq:$separator ?qualifier.
@@ -369,10 +368,10 @@  discard block
 block discarded – undo
369 368
 		$pid = $statement->getPropertyId()->serialize();
370 369
 		$guid = $statement->getGuid();
371 370
 		'@phan-var string $guid'; // statement must have a non-null GUID
372
-		$guidForRdf = str_replace( '$', '-', $guid );
371
+		$guidForRdf = str_replace('$', '-', $guid);
373 372
 
374
-		$separatorFilters = array_map( [ $this, 'nestedSeparatorFilter' ], $separators );
375
-		$finalSeparatorFilter = implode( "\n", $separatorFilters );
373
+		$separatorFilters = array_map([$this, 'nestedSeparatorFilter'], $separators);
374
+		$finalSeparatorFilter = implode("\n", $separatorFilters);
376 375
 
377 376
 		$query = <<<EOF
378 377
 SELECT DISTINCT ?otherEntity WHERE {
@@ -390,9 +389,9 @@  discard block
 block discarded – undo
390 389
 LIMIT 10
391 390
 EOF;
392 391
 
393
-		$result = $this->runQuery( $query );
392
+		$result = $this->runQuery($query);
394 393
 
395
-		return $this->getOtherEntities( $result );
394
+		return $this->getOtherEntities($result);
396 395
 	}
397 396
 
398 397
 	/**
@@ -417,16 +416,15 @@  discard block
 block discarded – undo
417 416
 		$dataType = $this->propertyDataTypeLookup->getDataTypeIdForProperty(
418 417
 			$snak->getPropertyId()
419 418
 		);
420
-		list( $value, $isFullValue ) = $this->getRdfLiteral( $dataType, $dataValue );
421
-		if ( $isFullValue ) {
419
+		list($value, $isFullValue) = $this->getRdfLiteral($dataType, $dataValue);
420
+		if ($isFullValue) {
422 421
 			$prefix .= 'v';
423 422
 		}
424 423
 		$path = $type === Context::TYPE_QUALIFIER ?
425
-			"$prefix:$pid" :
426
-			"prov:wasDerivedFrom/$prefix:$pid";
424
+			"$prefix:$pid" : "prov:wasDerivedFrom/$prefix:$pid";
427 425
 
428 426
 		$deprecatedFilter = '';
429
-		if ( $ignoreDeprecatedStatements ) {
427
+		if ($ignoreDeprecatedStatements) {
430 428
 			$deprecatedFilter = <<< EOF
431 429
   MINUS { ?otherStatement wikibase:rank wikibase:DeprecatedRank. }
432 430
 EOF;
@@ -446,9 +444,9 @@  discard block
 block discarded – undo
446 444
 LIMIT 10
447 445
 EOF;
448 446
 
449
-		$result = $this->runQuery( $query );
447
+		$result = $this->runQuery($query);
450 448
 
451
-		return $this->getOtherEntities( $result );
449
+		return $this->getOtherEntities($result);
452 450
 	}
453 451
 
454 452
 	/**
@@ -458,8 +456,8 @@  discard block
 block discarded – undo
458 456
 	 *
459 457
 	 * @return string
460 458
 	 */
461
-	private function stringLiteral( $text ) {
462
-		return '"' . strtr( $text, [ '"' => '\\"', '\\' => '\\\\' ] ) . '"';
459
+	private function stringLiteral($text) {
460
+		return '"'.strtr($text, ['"' => '\\"', '\\' => '\\\\']).'"';
463 461
 	}
464 462
 
465 463
 	/**
@@ -469,18 +467,18 @@  discard block
 block discarded – undo
469 467
 	 *
470 468
 	 * @return CachedEntityIds
471 469
 	 */
472
-	private function getOtherEntities( CachedQueryResults $results ) {
473
-		return new CachedEntityIds( array_map(
474
-			function ( $resultBindings ) {
470
+	private function getOtherEntities(CachedQueryResults $results) {
471
+		return new CachedEntityIds(array_map(
472
+			function($resultBindings) {
475 473
 				$entityIRI = $resultBindings['otherEntity']['value'];
476
-				foreach ( $this->entityPrefixes as $entityPrefix ) {
477
-					$entityPrefixLength = strlen( $entityPrefix );
478
-					if ( substr( $entityIRI, 0, $entityPrefixLength ) === $entityPrefix ) {
474
+				foreach ($this->entityPrefixes as $entityPrefix) {
475
+					$entityPrefixLength = strlen($entityPrefix);
476
+					if (substr($entityIRI, 0, $entityPrefixLength) === $entityPrefix) {
479 477
 						try {
480 478
 							return $this->entityIdParser->parse(
481
-								substr( $entityIRI, $entityPrefixLength )
479
+								substr($entityIRI, $entityPrefixLength)
482 480
 							);
483
-						} catch ( EntityIdParsingException $e ) {
481
+						} catch (EntityIdParsingException $e) {
484 482
 							// fall through
485 483
 						}
486 484
 					}
@@ -491,7 +489,7 @@  discard block
 block discarded – undo
491 489
 				return null;
492 490
 			},
493 491
 			$results->getArray()['results']['bindings']
494
-		), $results->getMetadata() );
492
+		), $results->getMetadata());
495 493
 	}
496 494
 
497 495
 	// phpcs:disable Generic.Metrics.CyclomaticComplexity,Squiz.WhiteSpace.FunctionSpacing
@@ -504,50 +502,50 @@  discard block
 block discarded – undo
504 502
 	 * @return array the literal or IRI as a string in SPARQL syntax,
505 503
 	 * and a boolean indicating whether it refers to a full value node or not
506 504
 	 */
507
-	private function getRdfLiteral( $dataType, DataValue $dataValue ) {
508
-		switch ( $dataType ) {
505
+	private function getRdfLiteral($dataType, DataValue $dataValue) {
506
+		switch ($dataType) {
509 507
 			case 'string':
510 508
 			case 'external-id':
511
-				return [ $this->stringLiteral( $dataValue->getValue() ), false ];
509
+				return [$this->stringLiteral($dataValue->getValue()), false];
512 510
 			case 'commonsMedia':
513
-				$url = $this->rdfVocabulary->getMediaFileURI( $dataValue->getValue() );
514
-				return [ '<' . $url . '>', false ];
511
+				$url = $this->rdfVocabulary->getMediaFileURI($dataValue->getValue());
512
+				return ['<'.$url.'>', false];
515 513
 			case 'geo-shape':
516
-				$url = $this->rdfVocabulary->getGeoShapeURI( $dataValue->getValue() );
517
-				return [ '<' . $url . '>', false ];
514
+				$url = $this->rdfVocabulary->getGeoShapeURI($dataValue->getValue());
515
+				return ['<'.$url.'>', false];
518 516
 			case 'tabular-data':
519
-				$url = $this->rdfVocabulary->getTabularDataURI( $dataValue->getValue() );
520
-				return [ '<' . $url . '>', false ];
517
+				$url = $this->rdfVocabulary->getTabularDataURI($dataValue->getValue());
518
+				return ['<'.$url.'>', false];
521 519
 			case 'url':
522 520
 				$url = $dataValue->getValue();
523
-				if ( !preg_match( '/^[^<>"{}\\\\|^`\\x00-\\x20]*$/D', $url ) ) {
521
+				if (!preg_match('/^[^<>"{}\\\\|^`\\x00-\\x20]*$/D', $url)) {
524 522
 					// not a valid URL for SPARQL (see SPARQL spec, production 139 IRIREF)
525 523
 					// such an URL should never reach us, so just throw
526
-					throw new InvalidArgumentException( 'invalid URL: ' . $url );
524
+					throw new InvalidArgumentException('invalid URL: '.$url);
527 525
 				}
528
-				return [ '<' . $url . '>', false ];
526
+				return ['<'.$url.'>', false];
529 527
 			case 'wikibase-item':
530 528
 			case 'wikibase-property':
531 529
 				/** @var EntityIdValue $dataValue */
532 530
 				'@phan-var EntityIdValue $dataValue';
533
-				return [ 'wd:' . $dataValue->getEntityId()->getSerialization(), false ];
531
+				return ['wd:'.$dataValue->getEntityId()->getSerialization(), false];
534 532
 			case 'monolingualtext':
535 533
 				/** @var MonolingualTextValue $dataValue */
536 534
 				'@phan-var MonolingualTextValue $dataValue';
537 535
 				$lang = $dataValue->getLanguageCode();
538
-				if ( !preg_match( '/^[a-zA-Z]+(-[a-zA-Z0-9]+)*$/D', $lang ) ) {
536
+				if (!preg_match('/^[a-zA-Z]+(-[a-zA-Z0-9]+)*$/D', $lang)) {
539 537
 					// not a valid language tag for SPARQL (see SPARQL spec, production 145 LANGTAG)
540 538
 					// such a language tag should never reach us, so just throw
541
-					throw new InvalidArgumentException( 'invalid language tag: ' . $lang );
539
+					throw new InvalidArgumentException('invalid language tag: '.$lang);
542 540
 				}
543
-				return [ $this->stringLiteral( $dataValue->getText() ) . '@' . $lang, false ];
541
+				return [$this->stringLiteral($dataValue->getText()).'@'.$lang, false];
544 542
 			case 'globe-coordinate':
545 543
 			case 'quantity':
546 544
 			case 'time':
547 545
 				// @phan-suppress-next-line PhanUndeclaredMethod
548
-				return [ 'wdv:' . $dataValue->getHash(), true ];
546
+				return ['wdv:'.$dataValue->getHash(), true];
549 547
 			default:
550
-				throw new InvalidArgumentException( 'unknown data type: ' . $dataType );
548
+				throw new InvalidArgumentException('unknown data type: '.$dataType);
551 549
 		}
552 550
 	}
553 551
 	// phpcs:enable
@@ -560,43 +558,43 @@  discard block
 block discarded – undo
560 558
 	 * @throws SparqlHelperException if the query times out or some other error occurs
561 559
 	 * @throws ConstraintParameterException if the $regex is invalid
562 560
 	 */
563
-	public function matchesRegularExpression( $text, $regex ) {
561
+	public function matchesRegularExpression($text, $regex) {
564 562
 		// caching wrapper around matchesRegularExpressionWithSparql
565 563
 
566
-		$textHash = hash( 'sha256', $text );
564
+		$textHash = hash('sha256', $text);
567 565
 		$cacheKey = $this->cache->makeKey(
568 566
 			'WikibaseQualityConstraints', // extension
569 567
 			'regex', // action
570 568
 			'WDQS-Java', // regex flavor
571
-			hash( 'sha256', $regex )
569
+			hash('sha256', $regex)
572 570
 		);
573 571
 
574 572
 		$cacheMapArray = $this->cache->getWithSetCallback(
575 573
 			$cacheKey,
576 574
 			WANObjectCache::TTL_DAY,
577
-			function ( $cacheMapArray ) use ( $text, $regex, $textHash ) {
575
+			function($cacheMapArray) use ($text, $regex, $textHash) {
578 576
 				// Initialize the cache map if not set
579
-				if ( $cacheMapArray === false ) {
577
+				if ($cacheMapArray === false) {
580 578
 					$key = 'wikibase.quality.constraints.regex.cache.refresh.init';
581
-					$this->dataFactory->increment( $key );
579
+					$this->dataFactory->increment($key);
582 580
 					return [];
583 581
 				}
584 582
 
585 583
 				$key = 'wikibase.quality.constraints.regex.cache.refresh';
586
-				$this->dataFactory->increment( $key );
587
-				$cacheMap = MapCacheLRU::newFromArray( $cacheMapArray, $this->cacheMapSize );
588
-				if ( $cacheMap->has( $textHash ) ) {
584
+				$this->dataFactory->increment($key);
585
+				$cacheMap = MapCacheLRU::newFromArray($cacheMapArray, $this->cacheMapSize);
586
+				if ($cacheMap->has($textHash)) {
589 587
 					$key = 'wikibase.quality.constraints.regex.cache.refresh.hit';
590
-					$this->dataFactory->increment( $key );
591
-					$cacheMap->get( $textHash ); // ping cache
588
+					$this->dataFactory->increment($key);
589
+					$cacheMap->get($textHash); // ping cache
592 590
 				} else {
593 591
 					$key = 'wikibase.quality.constraints.regex.cache.refresh.miss';
594
-					$this->dataFactory->increment( $key );
592
+					$this->dataFactory->increment($key);
595 593
 					try {
596
-						$matches = $this->matchesRegularExpressionWithSparql( $text, $regex );
597
-					} catch ( ConstraintParameterException $e ) {
598
-						$matches = $this->serializeConstraintParameterException( $e );
599
-					} catch ( SparqlHelperException $e ) {
594
+						$matches = $this->matchesRegularExpressionWithSparql($text, $regex);
595
+					} catch (ConstraintParameterException $e) {
596
+						$matches = $this->serializeConstraintParameterException($e);
597
+					} catch (SparqlHelperException $e) {
600 598
 						// don’t cache this
601 599
 						return $cacheMap->toArray();
602 600
 					}
@@ -620,42 +618,42 @@  discard block
 block discarded – undo
620 618
 			]
621 619
 		);
622 620
 
623
-		if ( isset( $cacheMapArray[$textHash] ) ) {
621
+		if (isset($cacheMapArray[$textHash])) {
624 622
 			$key = 'wikibase.quality.constraints.regex.cache.hit';
625
-			$this->dataFactory->increment( $key );
623
+			$this->dataFactory->increment($key);
626 624
 			$matches = $cacheMapArray[$textHash];
627
-			if ( is_bool( $matches ) ) {
625
+			if (is_bool($matches)) {
628 626
 				return $matches;
629
-			} elseif ( is_array( $matches ) &&
630
-				$matches['type'] == ConstraintParameterException::class ) {
631
-				throw $this->deserializeConstraintParameterException( $matches );
627
+			} elseif (is_array($matches) &&
628
+				$matches['type'] == ConstraintParameterException::class) {
629
+				throw $this->deserializeConstraintParameterException($matches);
632 630
 			} else {
633 631
 				throw new UnexpectedValueException(
634
-					'Value of unknown type in object cache (' .
635
-					'cache key: ' . $cacheKey . ', ' .
636
-					'cache map key: ' . $textHash . ', ' .
637
-					'value type: ' . gettype( $matches ) . ')'
632
+					'Value of unknown type in object cache ('.
633
+					'cache key: '.$cacheKey.', '.
634
+					'cache map key: '.$textHash.', '.
635
+					'value type: '.gettype($matches).')'
638 636
 				);
639 637
 			}
640 638
 		} else {
641 639
 			$key = 'wikibase.quality.constraints.regex.cache.miss';
642
-			$this->dataFactory->increment( $key );
643
-			return $this->matchesRegularExpressionWithSparql( $text, $regex );
640
+			$this->dataFactory->increment($key);
641
+			return $this->matchesRegularExpressionWithSparql($text, $regex);
644 642
 		}
645 643
 	}
646 644
 
647
-	private function serializeConstraintParameterException( ConstraintParameterException $cpe ) {
645
+	private function serializeConstraintParameterException(ConstraintParameterException $cpe) {
648 646
 		return [
649 647
 			'type' => ConstraintParameterException::class,
650
-			'violationMessage' => $this->violationMessageSerializer->serialize( $cpe->getViolationMessage() ),
648
+			'violationMessage' => $this->violationMessageSerializer->serialize($cpe->getViolationMessage()),
651 649
 		];
652 650
 	}
653 651
 
654
-	private function deserializeConstraintParameterException( array $serialization ) {
652
+	private function deserializeConstraintParameterException(array $serialization) {
655 653
 		$message = $this->violationMessageDeserializer->deserialize(
656 654
 			$serialization['violationMessage']
657 655
 		);
658
-		return new ConstraintParameterException( $message );
656
+		return new ConstraintParameterException($message);
659 657
 	}
660 658
 
661 659
 	/**
@@ -669,25 +667,25 @@  discard block
 block discarded – undo
669 667
 	 * @throws SparqlHelperException if the query times out or some other error occurs
670 668
 	 * @throws ConstraintParameterException if the $regex is invalid
671 669
 	 */
672
-	public function matchesRegularExpressionWithSparql( $text, $regex ) {
673
-		$textStringLiteral = $this->stringLiteral( $text );
674
-		$regexStringLiteral = $this->stringLiteral( '^(?:' . $regex . ')$' );
670
+	public function matchesRegularExpressionWithSparql($text, $regex) {
671
+		$textStringLiteral = $this->stringLiteral($text);
672
+		$regexStringLiteral = $this->stringLiteral('^(?:'.$regex.')$');
675 673
 
676 674
 		$query = <<<EOF
677 675
 SELECT (REGEX($textStringLiteral, $regexStringLiteral) AS ?matches) {}
678 676
 EOF;
679 677
 
680
-		$result = $this->runQuery( $query, false );
678
+		$result = $this->runQuery($query, false);
681 679
 
682 680
 		$vars = $result->getArray()['results']['bindings'][0];
683
-		if ( array_key_exists( 'matches', $vars ) ) {
681
+		if (array_key_exists('matches', $vars)) {
684 682
 			// true or false ⇒ regex okay, text matches or not
685 683
 			return $vars['matches']['value'] === 'true';
686 684
 		} else {
687 685
 			// empty result: regex broken
688 686
 			throw new ConstraintParameterException(
689
-				( new ViolationMessage( 'wbqc-violation-message-parameter-regex' ) )
690
-					->withInlineCode( $regex, Role::CONSTRAINT_PARAMETER_VALUE )
687
+				(new ViolationMessage('wbqc-violation-message-parameter-regex'))
688
+					->withInlineCode($regex, Role::CONSTRAINT_PARAMETER_VALUE)
691 689
 			);
692 690
 		}
693 691
 	}
@@ -699,14 +697,14 @@  discard block
 block discarded – undo
699 697
 	 *
700 698
 	 * @return boolean
701 699
 	 */
702
-	public function isTimeout( $responseContent ) {
703
-		$timeoutRegex = implode( '|', array_map(
704
-			static function ( $fqn ) {
705
-				return preg_quote( $fqn, '/' );
700
+	public function isTimeout($responseContent) {
701
+		$timeoutRegex = implode('|', array_map(
702
+			static function($fqn) {
703
+				return preg_quote($fqn, '/');
706 704
 			},
707 705
 			$this->timeoutExceptionClasses
708
-		) );
709
-		return (bool)preg_match( '/' . $timeoutRegex . '/', $responseContent );
706
+		));
707
+		return (bool) preg_match('/'.$timeoutRegex.'/', $responseContent);
710 708
 	}
711 709
 
712 710
 	/**
@@ -718,17 +716,17 @@  discard block
 block discarded – undo
718 716
 	 * @return int|boolean the max-age (in seconds)
719 717
 	 * or a plain boolean if no max-age can be determined
720 718
 	 */
721
-	public function getCacheMaxAge( $responseHeaders ) {
719
+	public function getCacheMaxAge($responseHeaders) {
722 720
 		if (
723
-			array_key_exists( 'x-cache-status', $responseHeaders ) &&
724
-			preg_match( '/^hit(?:-.*)?$/', $responseHeaders['x-cache-status'][0] )
721
+			array_key_exists('x-cache-status', $responseHeaders) &&
722
+			preg_match('/^hit(?:-.*)?$/', $responseHeaders['x-cache-status'][0])
725 723
 		) {
726 724
 			$maxage = [];
727 725
 			if (
728
-				array_key_exists( 'cache-control', $responseHeaders ) &&
729
-				preg_match( '/\bmax-age=(\d+)\b/', $responseHeaders['cache-control'][0], $maxage )
726
+				array_key_exists('cache-control', $responseHeaders) &&
727
+				preg_match('/\bmax-age=(\d+)\b/', $responseHeaders['cache-control'][0], $maxage)
730 728
 			) {
731
-				return intval( $maxage[1] );
729
+				return intval($maxage[1]);
732 730
 			} else {
733 731
 				return true;
734 732
 			}
@@ -749,34 +747,34 @@  discard block
 block discarded – undo
749 747
 	 * or SparlHelper::EMPTY_RETRY_AFTER if there is an empty Retry-After
750 748
 	 * or SparlHelper::INVALID_RETRY_AFTER if there is something wrong with the format
751 749
 	 */
752
-	public function getThrottling( MWHttpRequest $request ) {
753
-		$retryAfterValue = $request->getResponseHeader( 'Retry-After' );
754
-		if ( $retryAfterValue === null ) {
750
+	public function getThrottling(MWHttpRequest $request) {
751
+		$retryAfterValue = $request->getResponseHeader('Retry-After');
752
+		if ($retryAfterValue === null) {
755 753
 			return self::NO_RETRY_AFTER;
756 754
 		}
757 755
 
758
-		$trimmedRetryAfterValue = trim( $retryAfterValue );
759
-		if ( empty( $trimmedRetryAfterValue ) ) {
756
+		$trimmedRetryAfterValue = trim($retryAfterValue);
757
+		if (empty($trimmedRetryAfterValue)) {
760 758
 			return self::EMPTY_RETRY_AFTER;
761 759
 		}
762 760
 
763
-		if ( is_numeric( $trimmedRetryAfterValue ) ) {
764
-			$delaySeconds = (int)$trimmedRetryAfterValue;
765
-			if ( $delaySeconds >= 0 ) {
766
-				return $this->getTimestampInFuture( new DateInterval( 'PT' . $delaySeconds . 'S' ) );
761
+		if (is_numeric($trimmedRetryAfterValue)) {
762
+			$delaySeconds = (int) $trimmedRetryAfterValue;
763
+			if ($delaySeconds >= 0) {
764
+				return $this->getTimestampInFuture(new DateInterval('PT'.$delaySeconds.'S'));
767 765
 			}
768 766
 		} else {
769
-			$return = strtotime( $trimmedRetryAfterValue );
770
-			if ( !empty( $return ) ) {
771
-				return new ConvertibleTimestamp( $return );
767
+			$return = strtotime($trimmedRetryAfterValue);
768
+			if (!empty($return)) {
769
+				return new ConvertibleTimestamp($return);
772 770
 			}
773 771
 		}
774 772
 		return self::INVALID_RETRY_AFTER;
775 773
 	}
776 774
 
777
-	private function getTimestampInFuture( DateInterval $delta ) {
775
+	private function getTimestampInFuture(DateInterval $delta) {
778 776
 		$now = new ConvertibleTimestamp();
779
-		return new ConvertibleTimestamp( $now->timestamp->add( $delta ) );
777
+		return new ConvertibleTimestamp($now->timestamp->add($delta));
780 778
 	}
781 779
 
782 780
 	/**
@@ -790,65 +788,64 @@  discard block
 block discarded – undo
790 788
 	 *
791 789
 	 * @throws SparqlHelperException if the query times out or some other error occurs
792 790
 	 */
793
-	public function runQuery( $query, $needsPrefixes = true ) {
791
+	public function runQuery($query, $needsPrefixes = true) {
794 792
 
795
-		if ( $this->throttlingLock->isLocked( self::EXPIRY_LOCK_ID ) ) {
796
-			$this->dataFactory->increment( 'wikibase.quality.constraints.sparql.throttling' );
793
+		if ($this->throttlingLock->isLocked(self::EXPIRY_LOCK_ID)) {
794
+			$this->dataFactory->increment('wikibase.quality.constraints.sparql.throttling');
797 795
 			throw new TooManySparqlRequestsException();
798 796
 		}
799 797
 
800
-		if ( $this->sparqlHasWikibaseSupport ) {
798
+		if ($this->sparqlHasWikibaseSupport) {
801 799
 			$needsPrefixes = false;
802 800
 		}
803 801
 
804
-		if ( $needsPrefixes ) {
805
-			$query = $this->prefixes . $query;
802
+		if ($needsPrefixes) {
803
+			$query = $this->prefixes.$query;
806 804
 		}
807
-		$query = "#wbqc\n" . $query;
805
+		$query = "#wbqc\n".$query;
808 806
 
809
-		$url = $this->endpoint . '?' . http_build_query(
807
+		$url = $this->endpoint.'?'.http_build_query(
810 808
 			[
811 809
 				'query' => $query,
812 810
 				'format' => 'json',
813 811
 				'maxQueryTimeMillis' => $this->maxQueryTimeMillis,
814 812
 			],
815
-			'', ini_get( 'arg_separator.output' ),
813
+			'', ini_get('arg_separator.output'),
816 814
 			// encode spaces with %20, not +
817 815
 			PHP_QUERY_RFC3986
818 816
 		);
819 817
 
820 818
 		$options = [
821 819
 			'method' => 'GET',
822
-			'timeout' => (int)round( ( $this->maxQueryTimeMillis + 1000 ) / 1000 ),
820
+			'timeout' => (int) round(($this->maxQueryTimeMillis + 1000) / 1000),
823 821
 			'connectTimeout' => 'default',
824 822
 			'userAgent' => $this->defaultUserAgent,
825 823
 		];
826
-		$request = $this->requestFactory->create( $url, $options, __METHOD__ );
827
-		$startTime = microtime( true );
824
+		$request = $this->requestFactory->create($url, $options, __METHOD__);
825
+		$startTime = microtime(true);
828 826
 		$requestStatus = $request->execute();
829
-		$endTime = microtime( true );
827
+		$endTime = microtime(true);
830 828
 		$this->dataFactory->timing(
831 829
 			'wikibase.quality.constraints.sparql.timing',
832
-			( $endTime - $startTime ) * 1000
830
+			($endTime - $startTime) * 1000
833 831
 		);
834 832
 
835
-		$this->guardAgainstTooManyRequestsError( $request );
833
+		$this->guardAgainstTooManyRequestsError($request);
836 834
 
837
-		$maxAge = $this->getCacheMaxAge( $request->getResponseHeaders() );
838
-		if ( $maxAge ) {
839
-			$this->dataFactory->increment( 'wikibase.quality.constraints.sparql.cached' );
835
+		$maxAge = $this->getCacheMaxAge($request->getResponseHeaders());
836
+		if ($maxAge) {
837
+			$this->dataFactory->increment('wikibase.quality.constraints.sparql.cached');
840 838
 		}
841 839
 
842
-		if ( $requestStatus->isOK() ) {
840
+		if ($requestStatus->isOK()) {
843 841
 			$json = $request->getContent();
844
-			$jsonStatus = FormatJson::parse( $json, FormatJson::FORCE_ASSOC );
845
-			if ( $jsonStatus->isOK() ) {
842
+			$jsonStatus = FormatJson::parse($json, FormatJson::FORCE_ASSOC);
843
+			if ($jsonStatus->isOK()) {
846 844
 				return new CachedQueryResults(
847 845
 					$jsonStatus->getValue(),
848 846
 					Metadata::ofCachingMetadata(
849 847
 						$maxAge ?
850
-							CachingMetadata::ofMaximumAgeInSeconds( $maxAge ) :
851
-							CachingMetadata::fresh()
848
+							CachingMetadata::ofMaximumAgeInSeconds($maxAge) : CachingMetadata::fresh()
852 849
 					)
853 850
 				);
854 851
 			} else {
@@ -865,9 +862,9 @@  discard block
 block discarded – undo
865 862
 			// fall through to general error handling
866 863
 		}
867 864
 
868
-		$this->dataFactory->increment( 'wikibase.quality.constraints.sparql.error' );
865
+		$this->dataFactory->increment('wikibase.quality.constraints.sparql.error');
869 866
 
870
-		if ( $this->isTimeout( $request->getContent() ) ) {
867
+		if ($this->isTimeout($request->getContent())) {
871 868
 			$this->dataFactory->increment(
872 869
 				'wikibase.quality.constraints.sparql.error.timeout'
873 870
 			);
@@ -882,29 +879,29 @@  discard block
 block discarded – undo
882 879
 	 * @param MWHttpRequest $request
883 880
 	 * @throws TooManySparqlRequestsException
884 881
 	 */
885
-	private function guardAgainstTooManyRequestsError( MWHttpRequest $request ): void {
886
-		if ( $request->getStatus() !== self::HTTP_TOO_MANY_REQUESTS ) {
882
+	private function guardAgainstTooManyRequestsError(MWHttpRequest $request): void {
883
+		if ($request->getStatus() !== self::HTTP_TOO_MANY_REQUESTS) {
887 884
 			return;
888 885
 		}
889 886
 
890 887
 		$fallbackBlockDuration = $this->sparqlThrottlingFallbackDuration;
891 888
 
892
-		if ( $fallbackBlockDuration < 0 ) {
893
-			throw new InvalidArgumentException( 'Fallback duration must be positive int but is: ' .
894
-				$fallbackBlockDuration );
889
+		if ($fallbackBlockDuration < 0) {
890
+			throw new InvalidArgumentException('Fallback duration must be positive int but is: '.
891
+				$fallbackBlockDuration);
895 892
 		}
896 893
 
897
-		$this->dataFactory->increment( 'wikibase.quality.constraints.sparql.throttling' );
898
-		$throttlingUntil = $this->getThrottling( $request );
899
-		if ( !( $throttlingUntil instanceof ConvertibleTimestamp ) ) {
900
-			$this->loggingHelper->logSparqlHelperTooManyRequestsRetryAfterInvalid( $request );
894
+		$this->dataFactory->increment('wikibase.quality.constraints.sparql.throttling');
895
+		$throttlingUntil = $this->getThrottling($request);
896
+		if (!($throttlingUntil instanceof ConvertibleTimestamp)) {
897
+			$this->loggingHelper->logSparqlHelperTooManyRequestsRetryAfterInvalid($request);
901 898
 			$this->throttlingLock->lock(
902 899
 				self::EXPIRY_LOCK_ID,
903
-				$this->getTimestampInFuture( new DateInterval( 'PT' . $fallbackBlockDuration . 'S' ) )
900
+				$this->getTimestampInFuture(new DateInterval('PT'.$fallbackBlockDuration.'S'))
904 901
 			);
905 902
 		} else {
906
-			$this->loggingHelper->logSparqlHelperTooManyRequestsRetryAfterPresent( $throttlingUntil, $request );
907
-			$this->throttlingLock->lock( self::EXPIRY_LOCK_ID, $throttlingUntil );
903
+			$this->loggingHelper->logSparqlHelperTooManyRequestsRetryAfterPresent($throttlingUntil, $request);
904
+			$this->throttlingLock->lock(self::EXPIRY_LOCK_ID, $throttlingUntil);
908 905
 		}
909 906
 		throw new TooManySparqlRequestsException();
910 907
 	}
Please login to merge, or discard this patch.