for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Mediawiki\Api;
use Exception;
/**
* A MultipartRequest is the same as a FluentRequest with additional support for setting request
* parameters (both normal parameters and headers) on multipart requests.
*
* @link http://docs.guzzlephp.org/en/stable/request-options.html#multipart
*/
class MultipartRequest extends FluentRequest {
/** @var mixed[] */
protected $multipartParams = [];
* Check the structure of a multipart parameter array.
* @param mixed[] $params The multipart parameters to check.
* @throws Exception
protected function checkMultipartParams( $params ) {
foreach ( $params as $key => $val ) {
if ( !is_array( $val ) ) {
throw new Exception( "Parameter '$key' must be an array." );
}
if ( !in_array( $key, $this->getParams() ) ) {
throw new Exception( "Parameter '$key' is not already set on this request." );
* Set all multipart parameters, replacing all existing ones.
* @param $params
* @return $this
public function setMultipartParams( $params ) {
$this->checkMultipartParams( $params );
$this->multipartParams = $params;
return $this;
* Add extra multipart parameters.
* @param mixed[] $params
public function addMultipartParams( $params ) {
$this->multipartParams = array_merge( $this->multipartParams, $params );
* Get all multipart request parameters.
* @return mixed[]
public function getMultipartParams() {
return $this->multipartParams;