@@ -8,20 +8,20 @@ |
||
8 | 8 | use Wikibase\Repo\WikibaseRepo; |
9 | 9 | |
10 | 10 | return [ |
11 | - WikibaseServices::ENTITY_LOOKUP => function ( MediaWikiServices $services ) { |
|
11 | + WikibaseServices::ENTITY_LOOKUP => function(MediaWikiServices $services) { |
|
12 | 12 | return new ExceptionIgnoringEntityLookup( |
13 | - WikibaseRepo::getEntityLookup( $services ) |
|
13 | + WikibaseRepo::getEntityLookup($services) |
|
14 | 14 | ); |
15 | 15 | }, |
16 | 16 | |
17 | - WikibaseServices::ENTITY_LOOKUP_WITHOUT_CACHE => function ( MediaWikiServices $services ) { |
|
17 | + WikibaseServices::ENTITY_LOOKUP_WITHOUT_CACHE => function(MediaWikiServices $services) { |
|
18 | 18 | return new ExceptionIgnoringEntityLookup( |
19 | - WikibaseRepo::getStore( $services ) |
|
20 | - ->getEntityLookup( Store::LOOKUP_CACHING_RETRIEVE_ONLY ) |
|
19 | + WikibaseRepo::getStore($services) |
|
20 | + ->getEntityLookup(Store::LOOKUP_CACHING_RETRIEVE_ONLY) |
|
21 | 21 | ); |
22 | 22 | }, |
23 | 23 | |
24 | - WikibaseServices::PROPERTY_DATA_TYPE_LOOKUP => function ( MediaWikiServices $services ) { |
|
25 | - return WikibaseRepo::getPropertyDataTypeLookup( $services ); |
|
24 | + WikibaseServices::PROPERTY_DATA_TYPE_LOOKUP => function(MediaWikiServices $services) { |
|
25 | + return WikibaseRepo::getPropertyDataTypeLookup($services); |
|
26 | 26 | }, |
27 | 27 | ]; |
@@ -38,8 +38,8 @@ discard block |
||
38 | 38 | */ |
39 | 39 | private const BATCH_SIZE = 50; |
40 | 40 | |
41 | - public static function newFromGlobalState( Title $title, array $params ) { |
|
42 | - Assert::parameterType( 'string', $params['propertyId'], '$params["propertyId"]' ); |
|
41 | + public static function newFromGlobalState(Title $title, array $params) { |
|
42 | + Assert::parameterType('string', $params['propertyId'], '$params["propertyId"]'); |
|
43 | 43 | $services = MediaWikiServices::getInstance(); |
44 | 44 | return new UpdateConstraintsTableJob( |
45 | 45 | $title, |
@@ -49,8 +49,8 @@ discard block |
||
49 | 49 | $services->getMainConfig(), |
50 | 50 | ConstraintsServices::getConstraintStore(), |
51 | 51 | $services->getDBLoadBalancerFactory(), |
52 | - WikibaseRepo::getStore()->getEntityRevisionLookup( Store::LOOKUP_CACHING_DISABLED ), |
|
53 | - WikibaseRepo::getBaseDataModelSerializerFactory( $services ) |
|
52 | + WikibaseRepo::getStore()->getEntityRevisionLookup(Store::LOOKUP_CACHING_DISABLED), |
|
53 | + WikibaseRepo::getBaseDataModelSerializerFactory($services) |
|
54 | 54 | ->newSnakSerializer() |
55 | 55 | ); |
56 | 56 | } |
@@ -110,7 +110,7 @@ discard block |
||
110 | 110 | EntityRevisionLookup $entityRevisionLookup, |
111 | 111 | Serializer $snakSerializer |
112 | 112 | ) { |
113 | - parent::__construct( 'constraintsTableUpdate', $title, $params ); |
|
113 | + parent::__construct('constraintsTableUpdate', $title, $params); |
|
114 | 114 | |
115 | 115 | $this->propertyId = $propertyId; |
116 | 116 | $this->revisionId = $revisionId; |
@@ -121,11 +121,11 @@ discard block |
||
121 | 121 | $this->snakSerializer = $snakSerializer; |
122 | 122 | } |
123 | 123 | |
124 | - public function extractParametersFromQualifiers( SnakList $qualifiers ) { |
|
124 | + public function extractParametersFromQualifiers(SnakList $qualifiers) { |
|
125 | 125 | $parameters = []; |
126 | - foreach ( $qualifiers as $qualifier ) { |
|
126 | + foreach ($qualifiers as $qualifier) { |
|
127 | 127 | $qualifierId = $qualifier->getPropertyId()->getSerialization(); |
128 | - $paramSerialization = $this->snakSerializer->serialize( $qualifier ); |
|
128 | + $paramSerialization = $this->snakSerializer->serialize($qualifier); |
|
129 | 129 | $parameters[$qualifierId][] = $paramSerialization; |
130 | 130 | } |
131 | 131 | return $parameters; |
@@ -142,7 +142,7 @@ discard block |
||
142 | 142 | '@phan-var \Wikibase\DataModel\Entity\EntityIdValue $dataValue'; |
143 | 143 | $entityId = $dataValue->getEntityId(); |
144 | 144 | $constraintTypeQid = $entityId->getSerialization(); |
145 | - $parameters = $this->extractParametersFromQualifiers( $constraintStatement->getQualifiers() ); |
|
145 | + $parameters = $this->extractParametersFromQualifiers($constraintStatement->getQualifiers()); |
|
146 | 146 | return new Constraint( |
147 | 147 | $constraintId, |
148 | 148 | $propertyId, |
@@ -157,24 +157,24 @@ discard block |
||
157 | 157 | PropertyId $propertyConstraintPropertyId |
158 | 158 | ) { |
159 | 159 | $constraintsStatements = $property->getStatements() |
160 | - ->getByPropertyId( $propertyConstraintPropertyId ) |
|
161 | - ->getByRank( [ Statement::RANK_PREFERRED, Statement::RANK_NORMAL ] ); |
|
160 | + ->getByPropertyId($propertyConstraintPropertyId) |
|
161 | + ->getByRank([Statement::RANK_PREFERRED, Statement::RANK_NORMAL]); |
|
162 | 162 | $constraints = []; |
163 | - foreach ( $constraintsStatements->getIterator() as $constraintStatement ) { |
|
164 | - $constraints[] = $this->extractConstraintFromStatement( $property->getId(), $constraintStatement ); |
|
165 | - if ( count( $constraints ) >= self::BATCH_SIZE ) { |
|
166 | - $constraintStore->insertBatch( $constraints ); |
|
163 | + foreach ($constraintsStatements->getIterator() as $constraintStatement) { |
|
164 | + $constraints[] = $this->extractConstraintFromStatement($property->getId(), $constraintStatement); |
|
165 | + if (count($constraints) >= self::BATCH_SIZE) { |
|
166 | + $constraintStore->insertBatch($constraints); |
|
167 | 167 | // interrupt transaction and wait for replication |
168 | - $connection = $this->lbFactory->getMainLB()->getConnection( DB_MASTER ); |
|
169 | - $connection->endAtomic( __CLASS__ ); |
|
170 | - if ( !$connection->explicitTrxActive() ) { |
|
168 | + $connection = $this->lbFactory->getMainLB()->getConnection(DB_MASTER); |
|
169 | + $connection->endAtomic(__CLASS__); |
|
170 | + if (!$connection->explicitTrxActive()) { |
|
171 | 171 | $this->lbFactory->waitForReplication(); |
172 | 172 | } |
173 | - $connection->startAtomic( __CLASS__ ); |
|
173 | + $connection->startAtomic(__CLASS__); |
|
174 | 174 | $constraints = []; |
175 | 175 | } |
176 | 176 | } |
177 | - $constraintStore->insertBatch( $constraints ); |
|
177 | + $constraintStore->insertBatch($constraints); |
|
178 | 178 | } |
179 | 179 | |
180 | 180 | /** |
@@ -185,24 +185,24 @@ discard block |
||
185 | 185 | public function run() { |
186 | 186 | // TODO in the future: only touch constraints affected by the edit (requires T163465) |
187 | 187 | |
188 | - $propertyId = new PropertyId( $this->propertyId ); |
|
188 | + $propertyId = new PropertyId($this->propertyId); |
|
189 | 189 | $propertyRevision = $this->entityRevisionLookup->getEntityRevision( |
190 | 190 | $propertyId, |
191 | 191 | 0, // latest |
192 | 192 | LookupConstants::LATEST_FROM_REPLICA |
193 | 193 | ); |
194 | 194 | |
195 | - if ( $this->revisionId !== null && $propertyRevision->getRevisionId() < $this->revisionId ) { |
|
196 | - JobQueueGroup::singleton()->push( $this ); |
|
195 | + if ($this->revisionId !== null && $propertyRevision->getRevisionId() < $this->revisionId) { |
|
196 | + JobQueueGroup::singleton()->push($this); |
|
197 | 197 | return true; |
198 | 198 | } |
199 | 199 | |
200 | - $connection = $this->lbFactory->getMainLB()->getConnection( DB_MASTER ); |
|
200 | + $connection = $this->lbFactory->getMainLB()->getConnection(DB_MASTER); |
|
201 | 201 | // start transaction (if not started yet) – using __CLASS__, not __METHOD__, |
202 | 202 | // because importConstraintsForProperty() can interrupt the transaction |
203 | - $connection->startAtomic( __CLASS__ ); |
|
203 | + $connection->startAtomic(__CLASS__); |
|
204 | 204 | |
205 | - $this->constraintStore->deleteForProperty( $propertyId ); |
|
205 | + $this->constraintStore->deleteForProperty($propertyId); |
|
206 | 206 | |
207 | 207 | /** @var Property $property */ |
208 | 208 | $property = $propertyRevision->getEntity(); |
@@ -210,10 +210,10 @@ discard block |
||
210 | 210 | $this->importConstraintsForProperty( |
211 | 211 | $property, |
212 | 212 | $this->constraintStore, |
213 | - new PropertyId( $this->config->get( 'WBQualityConstraintsPropertyConstraintId' ) ) |
|
213 | + new PropertyId($this->config->get('WBQualityConstraintsPropertyConstraintId')) |
|
214 | 214 | ); |
215 | 215 | |
216 | - $connection->endAtomic( __CLASS__ ); |
|
216 | + $connection->endAtomic(__CLASS__); |
|
217 | 217 | |
218 | 218 | return true; |
219 | 219 | } |
@@ -1,6 +1,6 @@ discard block |
||
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 | |
@@ -33,13 +33,13 @@ discard block |
||
33 | 33 | $this->violationMessageRendererFactory = $violationMessageRendererFactory; |
34 | 34 | } |
35 | 35 | |
36 | - public function getCheckResultsRenderer( Language $language ): CheckResultsRenderer { |
|
36 | + public function getCheckResultsRenderer(Language $language): CheckResultsRenderer { |
|
37 | 37 | return new CheckResultsRenderer( |
38 | 38 | $this->entityTitleLookup, |
39 | 39 | $this->entityIdLabelFormatterFactory |
40 | - ->getEntityIdFormatter( $language ), |
|
40 | + ->getEntityIdFormatter($language), |
|
41 | 41 | $this->violationMessageRendererFactory |
42 | - ->getViolationMessageRenderer( $language ) |
|
42 | + ->getViolationMessageRenderer($language) |
|
43 | 43 | ); |
44 | 44 | } |
45 | 45 |
@@ -102,9 +102,9 @@ discard block |
||
102 | 102 | StatementGuidParser $statementGuidParser, |
103 | 103 | IBufferingStatsdDataFactory $dataFactory |
104 | 104 | ) { |
105 | - parent::__construct( $main, $name ); |
|
105 | + parent::__construct($main, $name); |
|
106 | 106 | |
107 | - $this->apiErrorReporter = $apiHelperFactory->getErrorReporter( $this ); |
|
107 | + $this->apiErrorReporter = $apiHelperFactory->getErrorReporter($this); |
|
108 | 108 | $this->delegatingConstraintChecker = $delegatingConstraintChecker; |
109 | 109 | $this->violationMessageRendererFactory = $violationMessageRendererFactory; |
110 | 110 | $this->statementGuidParser = $statementGuidParser; |
@@ -119,39 +119,39 @@ discard block |
||
119 | 119 | $params = $this->extractRequestParams(); |
120 | 120 | $result = $this->getResult(); |
121 | 121 | |
122 | - $propertyIds = $this->parsePropertyIds( $params[self::PARAM_PROPERTY_ID] ); |
|
123 | - $constraintIds = $this->parseConstraintIds( $params[self::PARAM_CONSTRAINT_ID] ); |
|
122 | + $propertyIds = $this->parsePropertyIds($params[self::PARAM_PROPERTY_ID]); |
|
123 | + $constraintIds = $this->parseConstraintIds($params[self::PARAM_CONSTRAINT_ID]); |
|
124 | 124 | |
125 | - $this->checkPropertyIds( $propertyIds, $result ); |
|
126 | - $this->checkConstraintIds( $constraintIds, $result ); |
|
125 | + $this->checkPropertyIds($propertyIds, $result); |
|
126 | + $this->checkConstraintIds($constraintIds, $result); |
|
127 | 127 | |
128 | - $result->addValue( null, 'success', 1 ); |
|
128 | + $result->addValue(null, 'success', 1); |
|
129 | 129 | } |
130 | 130 | |
131 | 131 | /** |
132 | 132 | * @param array|null $propertyIdSerializations |
133 | 133 | * @return PropertyId[] |
134 | 134 | */ |
135 | - private function parsePropertyIds( $propertyIdSerializations ) { |
|
136 | - if ( $propertyIdSerializations === null ) { |
|
135 | + private function parsePropertyIds($propertyIdSerializations) { |
|
136 | + if ($propertyIdSerializations === null) { |
|
137 | 137 | return []; |
138 | - } elseif ( empty( $propertyIdSerializations ) ) { |
|
138 | + } elseif (empty($propertyIdSerializations)) { |
|
139 | 139 | $this->apiErrorReporter->dieError( |
140 | - 'If ' . self::PARAM_PROPERTY_ID . ' is specified, it must be nonempty.', |
|
140 | + 'If '.self::PARAM_PROPERTY_ID.' is specified, it must be nonempty.', |
|
141 | 141 | 'no-data' |
142 | 142 | ); |
143 | 143 | } |
144 | 144 | |
145 | 145 | return array_map( |
146 | - function ( $propertyIdSerialization ) { |
|
146 | + function($propertyIdSerialization) { |
|
147 | 147 | try { |
148 | - return new PropertyId( $propertyIdSerialization ); |
|
149 | - } catch ( InvalidArgumentException $e ) { |
|
148 | + return new PropertyId($propertyIdSerialization); |
|
149 | + } catch (InvalidArgumentException $e) { |
|
150 | 150 | $this->apiErrorReporter->dieError( |
151 | 151 | "Invalid id: $propertyIdSerialization", |
152 | 152 | 'invalid-property-id', |
153 | 153 | 0, // default argument |
154 | - [ self::PARAM_PROPERTY_ID => $propertyIdSerialization ] |
|
154 | + [self::PARAM_PROPERTY_ID => $propertyIdSerialization] |
|
155 | 155 | ); |
156 | 156 | } |
157 | 157 | }, |
@@ -163,35 +163,35 @@ discard block |
||
163 | 163 | * @param array|null $constraintIds |
164 | 164 | * @return string[] |
165 | 165 | */ |
166 | - private function parseConstraintIds( $constraintIds ) { |
|
167 | - if ( $constraintIds === null ) { |
|
166 | + private function parseConstraintIds($constraintIds) { |
|
167 | + if ($constraintIds === null) { |
|
168 | 168 | return []; |
169 | - } elseif ( empty( $constraintIds ) ) { |
|
169 | + } elseif (empty($constraintIds)) { |
|
170 | 170 | $this->apiErrorReporter->dieError( |
171 | - 'If ' . self::PARAM_CONSTRAINT_ID . ' is specified, it must be nonempty.', |
|
171 | + 'If '.self::PARAM_CONSTRAINT_ID.' is specified, it must be nonempty.', |
|
172 | 172 | 'no-data' |
173 | 173 | ); |
174 | 174 | } |
175 | 175 | |
176 | 176 | return array_map( |
177 | - function ( $constraintId ) { |
|
177 | + function($constraintId) { |
|
178 | 178 | try { |
179 | - $propertyId = $this->statementGuidParser->parse( $constraintId )->getEntityId(); |
|
180 | - if ( !$propertyId instanceof PropertyId ) { |
|
179 | + $propertyId = $this->statementGuidParser->parse($constraintId)->getEntityId(); |
|
180 | + if (!$propertyId instanceof PropertyId) { |
|
181 | 181 | $this->apiErrorReporter->dieError( |
182 | 182 | "Invalid property ID: {$propertyId->getSerialization()}", |
183 | 183 | 'invalid-property-id', |
184 | 184 | 0, // default argument |
185 | - [ self::PARAM_CONSTRAINT_ID => $constraintId ] |
|
185 | + [self::PARAM_CONSTRAINT_ID => $constraintId] |
|
186 | 186 | ); |
187 | 187 | } |
188 | 188 | return $constraintId; |
189 | - } catch ( StatementGuidParsingException $e ) { |
|
189 | + } catch (StatementGuidParsingException $e) { |
|
190 | 190 | $this->apiErrorReporter->dieError( |
191 | 191 | "Invalid statement GUID: $constraintId", |
192 | 192 | 'invalid-guid', |
193 | 193 | 0, // default argument |
194 | - [ self::PARAM_CONSTRAINT_ID => $constraintId ] |
|
194 | + [self::PARAM_CONSTRAINT_ID => $constraintId] |
|
195 | 195 | ); |
196 | 196 | } |
197 | 197 | }, |
@@ -203,12 +203,12 @@ discard block |
||
203 | 203 | * @param PropertyId[] $propertyIds |
204 | 204 | * @param ApiResult $result |
205 | 205 | */ |
206 | - private function checkPropertyIds( array $propertyIds, ApiResult $result ) { |
|
207 | - foreach ( $propertyIds as $propertyId ) { |
|
208 | - $result->addArrayType( $this->getResultPathForPropertyId( $propertyId ), 'assoc' ); |
|
206 | + private function checkPropertyIds(array $propertyIds, ApiResult $result) { |
|
207 | + foreach ($propertyIds as $propertyId) { |
|
208 | + $result->addArrayType($this->getResultPathForPropertyId($propertyId), 'assoc'); |
|
209 | 209 | $allConstraintExceptions = $this->delegatingConstraintChecker |
210 | - ->checkConstraintParametersOnPropertyId( $propertyId ); |
|
211 | - foreach ( $allConstraintExceptions as $constraintId => $constraintParameterExceptions ) { |
|
210 | + ->checkConstraintParametersOnPropertyId($propertyId); |
|
211 | + foreach ($allConstraintExceptions as $constraintId => $constraintParameterExceptions) { |
|
212 | 212 | $this->addConstraintParameterExceptionsToResult( |
213 | 213 | $constraintId, |
214 | 214 | $constraintParameterExceptions, |
@@ -222,15 +222,15 @@ discard block |
||
222 | 222 | * @param string[] $constraintIds |
223 | 223 | * @param ApiResult $result |
224 | 224 | */ |
225 | - private function checkConstraintIds( array $constraintIds, ApiResult $result ) { |
|
226 | - foreach ( $constraintIds as $constraintId ) { |
|
227 | - if ( $result->getResultData( $this->getResultPathForConstraintId( $constraintId ) ) ) { |
|
225 | + private function checkConstraintIds(array $constraintIds, ApiResult $result) { |
|
226 | + foreach ($constraintIds as $constraintId) { |
|
227 | + if ($result->getResultData($this->getResultPathForConstraintId($constraintId))) { |
|
228 | 228 | // already checked as part of checkPropertyIds() |
229 | 229 | continue; |
230 | 230 | } |
231 | 231 | $constraintParameterExceptions = $this->delegatingConstraintChecker |
232 | - ->checkConstraintParametersOnConstraintId( $constraintId ); |
|
233 | - $this->addConstraintParameterExceptionsToResult( $constraintId, $constraintParameterExceptions, $result ); |
|
232 | + ->checkConstraintParametersOnConstraintId($constraintId); |
|
233 | + $this->addConstraintParameterExceptionsToResult($constraintId, $constraintParameterExceptions, $result); |
|
234 | 234 | } |
235 | 235 | } |
236 | 236 | |
@@ -238,18 +238,18 @@ discard block |
||
238 | 238 | * @param PropertyId $propertyId |
239 | 239 | * @return string[] |
240 | 240 | */ |
241 | - private function getResultPathForPropertyId( PropertyId $propertyId ) { |
|
242 | - return [ $this->getModuleName(), $propertyId->getSerialization() ]; |
|
241 | + private function getResultPathForPropertyId(PropertyId $propertyId) { |
|
242 | + return [$this->getModuleName(), $propertyId->getSerialization()]; |
|
243 | 243 | } |
244 | 244 | |
245 | 245 | /** |
246 | 246 | * @param string $constraintId |
247 | 247 | * @return string[] |
248 | 248 | */ |
249 | - private function getResultPathForConstraintId( $constraintId ) { |
|
250 | - $propertyId = $this->statementGuidParser->parse( $constraintId )->getEntityId(); |
|
249 | + private function getResultPathForConstraintId($constraintId) { |
|
250 | + $propertyId = $this->statementGuidParser->parse($constraintId)->getEntityId(); |
|
251 | 251 | '@phan-var PropertyId $propertyId'; |
252 | - return array_merge( $this->getResultPathForPropertyId( $propertyId ), [ $constraintId ] ); |
|
252 | + return array_merge($this->getResultPathForPropertyId($propertyId), [$constraintId]); |
|
253 | 253 | } |
254 | 254 | |
255 | 255 | /** |
@@ -264,8 +264,8 @@ discard block |
||
264 | 264 | $constraintParameterExceptions, |
265 | 265 | ApiResult $result |
266 | 266 | ) { |
267 | - $path = $this->getResultPathForConstraintId( $constraintId ); |
|
268 | - if ( $constraintParameterExceptions === null ) { |
|
267 | + $path = $this->getResultPathForConstraintId($constraintId); |
|
268 | + if ($constraintParameterExceptions === null) { |
|
269 | 269 | $result->addValue( |
270 | 270 | $path, |
271 | 271 | self::KEY_STATUS, |
@@ -275,13 +275,13 @@ discard block |
||
275 | 275 | $result->addValue( |
276 | 276 | $path, |
277 | 277 | self::KEY_STATUS, |
278 | - empty( $constraintParameterExceptions ) ? self::STATUS_OKAY : self::STATUS_NOT_OKAY |
|
278 | + empty($constraintParameterExceptions) ? self::STATUS_OKAY : self::STATUS_NOT_OKAY |
|
279 | 279 | ); |
280 | 280 | |
281 | 281 | $violationMessageRenderer = $this->violationMessageRendererFactory |
282 | - ->getViolationMessageRenderer( $this->getLanguage() ); |
|
282 | + ->getViolationMessageRenderer($this->getLanguage()); |
|
283 | 283 | $problems = []; |
284 | - foreach ( $constraintParameterExceptions as $constraintParameterException ) { |
|
284 | + foreach ($constraintParameterExceptions as $constraintParameterException) { |
|
285 | 285 | $problems[] = [ |
286 | 286 | self::KEY_MESSAGE_HTML => $violationMessageRenderer->render( |
287 | 287 | $constraintParameterException->getViolationMessage() ), |
@@ -320,8 +320,8 @@ discard block |
||
320 | 320 | return [ |
321 | 321 | 'action=wbcheckconstraintparameters&propertyid=P247' |
322 | 322 | => 'apihelp-wbcheckconstraintparameters-example-propertyid-1', |
323 | - 'action=wbcheckconstraintparameters&' . |
|
324 | - 'constraintid=P247$0fe1711e-4c0f-82ce-3af0-830b721d0fba|' . |
|
323 | + 'action=wbcheckconstraintparameters&'. |
|
324 | + 'constraintid=P247$0fe1711e-4c0f-82ce-3af0-830b721d0fba|'. |
|
325 | 325 | 'P225$cdc71e4a-47a0-12c5-dfb3-3f6fc0b6613f' |
326 | 326 | => 'apihelp-wbcheckconstraintparameters-example-constraintid-2', |
327 | 327 | ]; |
@@ -116,11 +116,11 @@ discard block |
||
116 | 116 | CheckResultsRendererFactory $checkResultsRendererFactory, |
117 | 117 | IBufferingStatsdDataFactory $dataFactory |
118 | 118 | ) { |
119 | - parent::__construct( $main, $name ); |
|
119 | + parent::__construct($main, $name); |
|
120 | 120 | $this->entityIdParser = $entityIdParser; |
121 | 121 | $this->statementGuidValidator = $statementGuidValidator; |
122 | - $this->resultBuilder = $apiHelperFactory->getResultBuilder( $this ); |
|
123 | - $this->errorReporter = $apiHelperFactory->getErrorReporter( $this ); |
|
122 | + $this->resultBuilder = $apiHelperFactory->getResultBuilder($this); |
|
123 | + $this->errorReporter = $apiHelperFactory->getErrorReporter($this); |
|
124 | 124 | $this->resultsSource = $resultsSource; |
125 | 125 | $this->checkResultsRendererFactory = $checkResultsRendererFactory; |
126 | 126 | $this->dataFactory = $dataFactory; |
@@ -136,14 +136,14 @@ discard block |
||
136 | 136 | |
137 | 137 | $params = $this->extractRequestParams(); |
138 | 138 | |
139 | - $this->validateParameters( $params ); |
|
140 | - $entityIds = $this->parseEntityIds( $params ); |
|
141 | - $claimIds = $this->parseClaimIds( $params ); |
|
139 | + $this->validateParameters($params); |
|
140 | + $entityIds = $this->parseEntityIds($params); |
|
141 | + $claimIds = $this->parseClaimIds($params); |
|
142 | 142 | $constraintIDs = $params[self::PARAM_CONSTRAINT_ID]; |
143 | 143 | $statuses = $params[self::PARAM_STATUS]; |
144 | 144 | |
145 | 145 | $checkResultsRenderer = $this->checkResultsRendererFactory |
146 | - ->getCheckResultsRenderer( $this->getLanguage() ); |
|
146 | + ->getCheckResultsRenderer($this->getLanguage()); |
|
147 | 147 | |
148 | 148 | $this->getResult()->addValue( |
149 | 149 | null, |
@@ -157,7 +157,7 @@ discard block |
||
157 | 157 | ) |
158 | 158 | )->getArray() |
159 | 159 | ); |
160 | - $this->resultBuilder->markSuccess( 1 ); |
|
160 | + $this->resultBuilder->markSuccess(1); |
|
161 | 161 | } |
162 | 162 | |
163 | 163 | /** |
@@ -165,24 +165,24 @@ discard block |
||
165 | 165 | * |
166 | 166 | * @return EntityId[] |
167 | 167 | */ |
168 | - private function parseEntityIds( array $params ) { |
|
168 | + private function parseEntityIds(array $params) { |
|
169 | 169 | $ids = $params[self::PARAM_ID]; |
170 | 170 | |
171 | - if ( $ids === null ) { |
|
171 | + if ($ids === null) { |
|
172 | 172 | return []; |
173 | - } elseif ( $ids === [] ) { |
|
173 | + } elseif ($ids === []) { |
|
174 | 174 | $this->errorReporter->dieError( |
175 | - 'If ' . self::PARAM_ID . ' is specified, it must be nonempty.', 'no-data' ); |
|
175 | + 'If '.self::PARAM_ID.' is specified, it must be nonempty.', 'no-data' ); |
|
176 | 176 | } |
177 | 177 | |
178 | - return array_map( function ( $id ) { |
|
178 | + return array_map(function($id) { |
|
179 | 179 | try { |
180 | - return $this->entityIdParser->parse( $id ); |
|
181 | - } catch ( EntityIdParsingException $e ) { |
|
180 | + return $this->entityIdParser->parse($id); |
|
181 | + } catch (EntityIdParsingException $e) { |
|
182 | 182 | $this->errorReporter->dieError( |
183 | - "Invalid id: $id", 'invalid-entity-id', 0, [ self::PARAM_ID => $id ] ); |
|
183 | + "Invalid id: $id", 'invalid-entity-id', 0, [self::PARAM_ID => $id] ); |
|
184 | 184 | } |
185 | - }, $ids ); |
|
185 | + }, $ids); |
|
186 | 186 | } |
187 | 187 | |
188 | 188 | /** |
@@ -190,35 +190,35 @@ discard block |
||
190 | 190 | * |
191 | 191 | * @return string[] |
192 | 192 | */ |
193 | - private function parseClaimIds( array $params ) { |
|
193 | + private function parseClaimIds(array $params) { |
|
194 | 194 | $ids = $params[self::PARAM_CLAIM_ID]; |
195 | 195 | |
196 | - if ( $ids === null ) { |
|
196 | + if ($ids === null) { |
|
197 | 197 | return []; |
198 | - } elseif ( $ids === [] ) { |
|
198 | + } elseif ($ids === []) { |
|
199 | 199 | $this->errorReporter->dieError( |
200 | - 'If ' . self::PARAM_CLAIM_ID . ' is specified, it must be nonempty.', 'no-data' ); |
|
200 | + 'If '.self::PARAM_CLAIM_ID.' is specified, it must be nonempty.', 'no-data' ); |
|
201 | 201 | } |
202 | 202 | |
203 | - foreach ( $ids as $id ) { |
|
204 | - if ( !$this->statementGuidValidator->validate( $id ) ) { |
|
203 | + foreach ($ids as $id) { |
|
204 | + if (!$this->statementGuidValidator->validate($id)) { |
|
205 | 205 | $this->errorReporter->dieError( |
206 | - "Invalid claim id: $id", 'invalid-guid', 0, [ self::PARAM_CLAIM_ID => $id ] ); |
|
206 | + "Invalid claim id: $id", 'invalid-guid', 0, [self::PARAM_CLAIM_ID => $id] ); |
|
207 | 207 | } |
208 | 208 | } |
209 | 209 | |
210 | 210 | return $ids; |
211 | 211 | } |
212 | 212 | |
213 | - private function validateParameters( array $params ) { |
|
214 | - if ( $params[self::PARAM_CONSTRAINT_ID] !== null |
|
215 | - && empty( $params[self::PARAM_CONSTRAINT_ID] ) |
|
213 | + private function validateParameters(array $params) { |
|
214 | + if ($params[self::PARAM_CONSTRAINT_ID] !== null |
|
215 | + && empty($params[self::PARAM_CONSTRAINT_ID]) |
|
216 | 216 | ) { |
217 | 217 | $paramConstraintId = self::PARAM_CONSTRAINT_ID; |
218 | 218 | $this->errorReporter->dieError( |
219 | 219 | "If $paramConstraintId is specified, it must be nonempty.", 'no-data' ); |
220 | 220 | } |
221 | - if ( $params[self::PARAM_ID] === null && $params[self::PARAM_CLAIM_ID] === null ) { |
|
221 | + if ($params[self::PARAM_ID] === null && $params[self::PARAM_CLAIM_ID] === null) { |
|
222 | 222 | $paramId = self::PARAM_ID; |
223 | 223 | $paramClaimId = self::PARAM_CLAIM_ID; |
224 | 224 | $this->errorReporter->dieError( |
@@ -259,7 +259,7 @@ discard block |
||
259 | 259 | ], |
260 | 260 | ApiBase::PARAM_ISMULTI => true, |
261 | 261 | ApiBase::PARAM_ALL => true, |
262 | - ApiBase::PARAM_DFLT => implode( '|', CachingResultsSource::CACHED_STATUSES ), |
|
262 | + ApiBase::PARAM_DFLT => implode('|', CachingResultsSource::CACHED_STATUSES), |
|
263 | 263 | ApiBase::PARAM_HELP_MSG_PER_VALUE => [], |
264 | 264 | ], |
265 | 265 | ]; |
@@ -1,6 +1,6 @@ discard block |
||
1 | 1 | <?php |
2 | 2 | |
3 | -declare( strict_types = 1 ); |
|
3 | +declare(strict_types=1); |
|
4 | 4 | |
5 | 5 | namespace WikibaseQuality\ConstraintReport\ConstraintCheck\Message; |
6 | 6 | |
@@ -41,14 +41,14 @@ discard block |
||
41 | 41 | $this->valueFormatterFactory = $valueFormatterFactory; |
42 | 42 | } |
43 | 43 | |
44 | - public function getViolationMessageRenderer( Language $language ): ViolationMessageRenderer { |
|
44 | + public function getViolationMessageRenderer(Language $language): ViolationMessageRenderer { |
|
45 | 45 | $formatterOptions = new FormatterOptions(); |
46 | - $formatterOptions->setOption( SnakFormatter::OPT_LANG, $language->getCode() ); |
|
46 | + $formatterOptions->setOption(SnakFormatter::OPT_LANG, $language->getCode()); |
|
47 | 47 | return new MultilingualTextViolationMessageRenderer( |
48 | 48 | $this->entityIdHtmlLinkFormatterFactory |
49 | - ->getEntityIdFormatter( $language ), |
|
49 | + ->getEntityIdFormatter($language), |
|
50 | 50 | $this->valueFormatterFactory |
51 | - ->getValueFormatter( SnakFormatter::FORMAT_HTML, $formatterOptions ), |
|
51 | + ->getValueFormatter(SnakFormatter::FORMAT_HTML, $formatterOptions), |
|
52 | 52 | $this->messageLocalizer, |
53 | 53 | $this->config |
54 | 54 | ); |
@@ -80,24 +80,24 @@ discard block |
||
80 | 80 | * @return bool |
81 | 81 | * @throws OverflowException if $entitiesChecked exceeds the configured limit |
82 | 82 | */ |
83 | - private function isSubclassOf( EntityId $comparativeClass, array $classesToCheck, &$entitiesChecked = 0 ) { |
|
84 | - $maxEntities = $this->config->get( 'WBQualityConstraintsTypeCheckMaxEntities' ); |
|
83 | + private function isSubclassOf(EntityId $comparativeClass, array $classesToCheck, &$entitiesChecked = 0) { |
|
84 | + $maxEntities = $this->config->get('WBQualityConstraintsTypeCheckMaxEntities'); |
|
85 | 85 | if ( ++$entitiesChecked > $maxEntities ) { |
86 | - throw new OverflowException( 'Too many entities to check' ); |
|
86 | + throw new OverflowException('Too many entities to check'); |
|
87 | 87 | } |
88 | 88 | |
89 | - $item = $this->entityLookup->getEntity( $comparativeClass ); |
|
90 | - if ( !( $item instanceof StatementListProvider ) ) { |
|
89 | + $item = $this->entityLookup->getEntity($comparativeClass); |
|
90 | + if (!($item instanceof StatementListProvider)) { |
|
91 | 91 | return false; // lookup failed, probably because item doesn't exist |
92 | 92 | } |
93 | 93 | |
94 | - $subclassId = $this->config->get( 'WBQualityConstraintsSubclassOfId' ); |
|
94 | + $subclassId = $this->config->get('WBQualityConstraintsSubclassOfId'); |
|
95 | 95 | /** @var Statement $statement */ |
96 | - foreach ( $item->getStatements()->getByPropertyId( new PropertyId( $subclassId ) ) as $statement ) { |
|
96 | + foreach ($item->getStatements()->getByPropertyId(new PropertyId($subclassId)) as $statement) { |
|
97 | 97 | $mainSnak = $statement->getMainSnak(); |
98 | 98 | |
99 | - if ( !$this->hasCorrectType( $mainSnak ) || |
|
100 | - $statement->getRank() === Statement::RANK_DEPRECATED ) { |
|
99 | + if (!$this->hasCorrectType($mainSnak) || |
|
100 | + $statement->getRank() === Statement::RANK_DEPRECATED) { |
|
101 | 101 | continue; |
102 | 102 | } |
103 | 103 | /** @var PropertyValueSnak $mainSnak */ |
@@ -107,11 +107,11 @@ discard block |
||
107 | 107 | '@phan-var EntityIdValue $dataValue'; |
108 | 108 | $comparativeClass = $dataValue->getEntityId(); |
109 | 109 | |
110 | - if ( in_array( $comparativeClass->getSerialization(), $classesToCheck ) ) { |
|
110 | + if (in_array($comparativeClass->getSerialization(), $classesToCheck)) { |
|
111 | 111 | return true; |
112 | 112 | } |
113 | 113 | |
114 | - if ( $this->isSubclassOf( $comparativeClass, $classesToCheck, $entitiesChecked ) ) { |
|
114 | + if ($this->isSubclassOf($comparativeClass, $classesToCheck, $entitiesChecked)) { |
|
115 | 115 | return true; |
116 | 116 | } |
117 | 117 | } |
@@ -132,48 +132,48 @@ discard block |
||
132 | 132 | * @return CachedBool |
133 | 133 | * @throws SparqlHelperException if SPARQL is used and the query times out or some other error occurs |
134 | 134 | */ |
135 | - public function isSubclassOfWithSparqlFallback( EntityId $comparativeClass, array $classesToCheck ) { |
|
135 | + public function isSubclassOfWithSparqlFallback(EntityId $comparativeClass, array $classesToCheck) { |
|
136 | 136 | try { |
137 | 137 | $entitiesChecked = 0; |
138 | - $start1 = microtime( true ); |
|
139 | - $isSubclass = $this->isSubclassOf( $comparativeClass, $classesToCheck, $entitiesChecked ); |
|
140 | - $end1 = microtime( true ); |
|
138 | + $start1 = microtime(true); |
|
139 | + $isSubclass = $this->isSubclassOf($comparativeClass, $classesToCheck, $entitiesChecked); |
|
140 | + $end1 = microtime(true); |
|
141 | 141 | $this->dataFactory->timing( |
142 | 142 | 'wikibase.quality.constraints.type.php.success.timing', |
143 | - ( $end1 - $start1 ) * 1000 |
|
143 | + ($end1 - $start1) * 1000 |
|
144 | 144 | ); |
145 | 145 | $this->dataFactory->timing( // not really a timing, but works like one (we want percentiles etc.) |
146 | 146 | 'wikibase.quality.constraints.type.php.success.entities', |
147 | 147 | $entitiesChecked |
148 | 148 | ); |
149 | 149 | |
150 | - return new CachedBool( $isSubclass, Metadata::blank() ); |
|
151 | - } catch ( OverflowException $e ) { |
|
152 | - $end1 = microtime( true ); |
|
150 | + return new CachedBool($isSubclass, Metadata::blank()); |
|
151 | + } catch (OverflowException $e) { |
|
152 | + $end1 = microtime(true); |
|
153 | 153 | $this->dataFactory->timing( |
154 | 154 | 'wikibase.quality.constraints.type.php.overflow.timing', |
155 | - ( $end1 - $start1 ) * 1000 |
|
155 | + ($end1 - $start1) * 1000 |
|
156 | 156 | ); |
157 | 157 | |
158 | - if ( !( $this->sparqlHelper instanceof DummySparqlHelper ) ) { |
|
158 | + if (!($this->sparqlHelper instanceof DummySparqlHelper)) { |
|
159 | 159 | $this->dataFactory->increment( |
160 | 160 | 'wikibase.quality.constraints.sparql.typeFallback' |
161 | 161 | ); |
162 | 162 | |
163 | - $start2 = microtime( true ); |
|
163 | + $start2 = microtime(true); |
|
164 | 164 | $hasType = $this->sparqlHelper->hasType( |
165 | 165 | $comparativeClass->getSerialization(), |
166 | 166 | $classesToCheck |
167 | 167 | ); |
168 | - $end2 = microtime( true ); |
|
168 | + $end2 = microtime(true); |
|
169 | 169 | $this->dataFactory->timing( |
170 | 170 | 'wikibase.quality.constraints.type.sparql.success.timing', |
171 | - ( $end2 - $start2 ) * 1000 |
|
171 | + ($end2 - $start2) * 1000 |
|
172 | 172 | ); |
173 | 173 | |
174 | 174 | return $hasType; |
175 | 175 | } else { |
176 | - return new CachedBool( false, Metadata::blank() ); |
|
176 | + return new CachedBool(false, Metadata::blank()); |
|
177 | 177 | } |
178 | 178 | } |
179 | 179 | } |
@@ -191,14 +191,14 @@ discard block |
||
191 | 191 | * @return CachedBool |
192 | 192 | * @throws SparqlHelperException if SPARQL is used and the query times out or some other error occurs |
193 | 193 | */ |
194 | - public function hasClassInRelation( StatementList $statements, array $relationIds, array $classesToCheck ) { |
|
194 | + public function hasClassInRelation(StatementList $statements, array $relationIds, array $classesToCheck) { |
|
195 | 195 | $metadatas = []; |
196 | 196 | |
197 | - foreach ( $this->getStatementsByPropertyIds( $statements, $relationIds ) as $statement ) { |
|
197 | + foreach ($this->getStatementsByPropertyIds($statements, $relationIds) as $statement) { |
|
198 | 198 | $mainSnak = $statement->getMainSnak(); |
199 | 199 | |
200 | - if ( !$this->hasCorrectType( $mainSnak ) || |
|
201 | - $statement->getRank() === Statement::RANK_DEPRECATED ) { |
|
200 | + if (!$this->hasCorrectType($mainSnak) || |
|
201 | + $statement->getRank() === Statement::RANK_DEPRECATED) { |
|
202 | 202 | continue; |
203 | 203 | } |
204 | 204 | /** @var PropertyValueSnak $mainSnak */ |
@@ -208,24 +208,24 @@ discard block |
||
208 | 208 | '@phan-var EntityIdValue $dataValue'; |
209 | 209 | $comparativeClass = $dataValue->getEntityId(); |
210 | 210 | |
211 | - if ( in_array( $comparativeClass->getSerialization(), $classesToCheck ) ) { |
|
211 | + if (in_array($comparativeClass->getSerialization(), $classesToCheck)) { |
|
212 | 212 | // discard $metadatas, we know this is fresh |
213 | - return new CachedBool( true, Metadata::blank() ); |
|
213 | + return new CachedBool(true, Metadata::blank()); |
|
214 | 214 | } |
215 | 215 | |
216 | - $result = $this->isSubclassOfWithSparqlFallback( $comparativeClass, $classesToCheck ); |
|
216 | + $result = $this->isSubclassOfWithSparqlFallback($comparativeClass, $classesToCheck); |
|
217 | 217 | $metadatas[] = $result->getMetadata(); |
218 | - if ( $result->getBool() ) { |
|
218 | + if ($result->getBool()) { |
|
219 | 219 | return new CachedBool( |
220 | 220 | true, |
221 | - Metadata::merge( $metadatas ) |
|
221 | + Metadata::merge($metadatas) |
|
222 | 222 | ); |
223 | 223 | } |
224 | 224 | } |
225 | 225 | |
226 | 226 | return new CachedBool( |
227 | 227 | false, |
228 | - Metadata::merge( $metadatas ) |
|
228 | + Metadata::merge($metadatas) |
|
229 | 229 | ); |
230 | 230 | } |
231 | 231 | |
@@ -234,7 +234,7 @@ discard block |
||
234 | 234 | * @return bool |
235 | 235 | * @phan-assert PropertyValueSnak $mainSnak |
236 | 236 | */ |
237 | - private function hasCorrectType( Snak $mainSnak ) { |
|
237 | + private function hasCorrectType(Snak $mainSnak) { |
|
238 | 238 | return $mainSnak instanceof PropertyValueSnak |
239 | 239 | && $mainSnak->getDataValue()->getType() === 'wikibase-entityid'; |
240 | 240 | } |
@@ -251,12 +251,12 @@ discard block |
||
251 | 251 | ) { |
252 | 252 | $statementArrays = []; |
253 | 253 | |
254 | - foreach ( $propertyIdSerializations as $propertyIdSerialization ) { |
|
255 | - $propertyId = new PropertyId( $propertyIdSerialization ); |
|
256 | - $statementArrays[] = $statements->getByPropertyId( $propertyId )->toArray(); |
|
254 | + foreach ($propertyIdSerializations as $propertyIdSerialization) { |
|
255 | + $propertyId = new PropertyId($propertyIdSerialization); |
|
256 | + $statementArrays[] = $statements->getByPropertyId($propertyId)->toArray(); |
|
257 | 257 | } |
258 | 258 | |
259 | - return call_user_func_array( 'array_merge', $statementArrays ); |
|
259 | + return call_user_func_array('array_merge', $statementArrays); |
|
260 | 260 | } |
261 | 261 | |
262 | 262 | /** |
@@ -268,10 +268,10 @@ discard block |
||
268 | 268 | * |
269 | 269 | * @return ViolationMessage |
270 | 270 | */ |
271 | - public function getViolationMessage( PropertyId $propertyId, EntityId $entityId, array $classes, $checker, $relation ) { |
|
271 | + public function getViolationMessage(PropertyId $propertyId, EntityId $entityId, array $classes, $checker, $relation) { |
|
272 | 272 | $classes = array_map( |
273 | - function ( $itemIdSerialization ) { |
|
274 | - return new ItemId( $itemIdSerialization ); |
|
273 | + function($itemIdSerialization) { |
|
274 | + return new ItemId($itemIdSerialization); |
|
275 | 275 | }, |
276 | 276 | $classes |
277 | 277 | ); |
@@ -283,10 +283,10 @@ discard block |
||
283 | 283 | // wbqc-violation-message-valueType-instance |
284 | 284 | // wbqc-violation-message-valueType-subclass |
285 | 285 | // wbqc-violation-message-valueType-instanceOrSubclass |
286 | - return ( new ViolationMessage( 'wbqc-violation-message-' . $checker . '-' . $relation ) ) |
|
287 | - ->withEntityId( $propertyId, Role::CONSTRAINT_PROPERTY ) |
|
288 | - ->withEntityId( $entityId, Role::SUBJECT ) |
|
289 | - ->withEntityIdList( $classes, Role::OBJECT ); |
|
286 | + return (new ViolationMessage('wbqc-violation-message-'.$checker.'-'.$relation)) |
|
287 | + ->withEntityId($propertyId, Role::CONSTRAINT_PROPERTY) |
|
288 | + ->withEntityId($entityId, Role::SUBJECT) |
|
289 | + ->withEntityIdList($classes, Role::OBJECT); |
|
290 | 290 | } |
291 | 291 | |
292 | 292 | } |