MediaWiki fundraising/REL1_35
ApiFormatPhp.php
Go to the documentation of this file.
1<?php
28
29 public function getMimeType() {
30 return 'application/vnd.php.serialized';
31 }
32
36 public function execute() {
37 $params = $this->extractRequestParams();
38
39 switch ( $params['formatversion'] ) {
40 case 1:
41 $transforms = [
42 'BC' => [],
43 'Types' => [],
44 'Strip' => 'all',
45 ];
46 break;
47
48 case 2:
49 case 'latest':
50 $transforms = [
51 'Types' => [],
52 'Strip' => 'all',
53 ];
54 break;
55
56 default:
57 // Should have been caught during parameter validation
58 $this->dieDebug( __METHOD__, 'Unknown value for \'formatversion\'' );
59 }
60 $text = serialize( $this->getResult()->getResultData( null, $transforms ) );
61
62 // T68776: OutputHandler::mangleFlashPolicy() avoids a nasty bug in
63 // Flash, but what it does isn't friendly for the API. There's nothing
64 // we can do here that isn't actively broken in some manner, so let's
65 // just be broken in a useful manner.
66 if ( $this->getConfig()->get( 'MangleFlashPolicy' ) &&
67 in_array( 'MediaWiki\\OutputHandler::handle', ob_list_handlers(), true ) &&
68 preg_match( '/<\s*cross-domain-policy(?=\s|>)/i', $text )
69 ) {
70 $this->dieWithError( 'apierror-formatphp', 'internalerror' );
71 }
72
73 $this->printText( $text );
74 }
75
76 public function getAllowedParams() {
77 $ret = parent::getAllowedParams() + [
78 'formatversion' => [
79 ApiBase::PARAM_TYPE => [ '1', '2', 'latest' ],
81 ApiBase::PARAM_HELP_MSG => 'apihelp-php-param-formatversion',
82 ],
83 ];
84 return $ret;
85 }
86}
serialize()
dieWithError( $msg, $code=null, $data=null, $httpCode=0)
Abort execution with an error.
Definition ApiBase.php:1437
static dieDebug( $method, $message)
Internal code errors should be reported with this method.
Definition ApiBase.php:1629
const PARAM_TYPE
Definition ApiBase.php:78
const PARAM_DFLT
Definition ApiBase.php:70
getResult()
Get the result object.
Definition ApiBase.php:620
extractRequestParams( $options=[])
Using getAllowedParams(), this function makes an array of the values provided by the user,...
Definition ApiBase.php:772
const PARAM_HELP_MSG
(string|array|Message) Specify an alternative i18n documentation message for this parameter.
Definition ApiBase.php:162
This is the abstract base class for API formatters.
printText( $text)
Append text to the output buffer.
API Serialized PHP output formatter.
execute()
SecurityCheck-XSS Output type is not text/html.
getAllowedParams()
Returns an array of allowed parameters (parameter name) => (default value) or (parameter name) => (ar...
getMimeType()
Overriding class returns the MIME type that should be sent to the client.