wiki.techinc.nl/includes/Rest/SimpleHandler.php
daniel 3c50afa46b Replace "@stable for subclassing" with "@stable to extend"
For compliance with the new version of the table interface policy
(T255803).

This patch was created by an automated search & replace operation
on the includes/ directory.

Bug: T257789
Change-Id: Ie32c1b11b3d16ddfc0c83a757327d449ff80b2e4
2020-07-13 11:00:30 +02:00

40 lines
1.1 KiB
PHP

<?php
namespace MediaWiki\Rest;
/**
* A handler base class which unpacks parameters from the path template and
* passes them as formal parameters to run().
*
* run() must be declared in the subclass. It cannot be declared as abstract
* here because it has a variable parameter list.
*
* @stable to extend
* @package MediaWiki\Rest
*/
abstract class SimpleHandler extends Handler {
public function execute() {
$paramSettings = $this->getParamSettings();
$validatedParams = $this->getValidatedParams();
$unvalidatedParams = [];
$params = [];
foreach ( $this->getRequest()->getPathParams() as $name => $value ) {
$source = $paramSettings[$name][self::PARAM_SOURCE] ?? 'unknown';
if ( $source !== 'path' ) {
$unvalidatedParams[] = $name;
$params[] = $value;
} else {
$params[] = $validatedParams[$name];
}
}
if ( $unvalidatedParams ) {
throw new \LogicException(
'Path parameters were not validated: ' . implode( ', ', $unvalidatedParams )
);
}
// @phan-suppress-next-line PhanUndeclaredMethod
return $this->run( ...$params );
}
}