MediaWiki REL1_33
HttpRequestFactory.php
Go to the documentation of this file.
1<?php
21
23use DomainException;
24use Http;
28use Profiler;
30
35
45 public function create( $url, array $options = [], $caller = __METHOD__ ) {
46 if ( !Http::$httpEngine ) {
47 Http::$httpEngine = 'guzzle';
48 } elseif ( Http::$httpEngine == 'curl' && !function_exists( 'curl_init' ) ) {
49 throw new DomainException( __METHOD__ . ': curl (https://secure.php.net/curl) is not ' .
50 'installed, but Http::$httpEngine is set to "curl"' );
51 }
52
53 if ( !isset( $options['logger'] ) ) {
54 $options['logger'] = LoggerFactory::getInstance( 'http' );
55 }
56
57 switch ( Http::$httpEngine ) {
58 case 'guzzle':
59 return new GuzzleHttpRequest( $url, $options, $caller, Profiler::instance() );
60 case 'curl':
61 return new CurlHttpRequest( $url, $options, $caller, Profiler::instance() );
62 case 'php':
63 if ( !wfIniGetBool( 'allow_url_fopen' ) ) {
64 throw new DomainException( __METHOD__ . ': allow_url_fopen ' .
65 'needs to be enabled for pure PHP http requests to ' .
66 'work. If possible, curl should be used instead. See ' .
67 'https://secure.php.net/curl.'
68 );
69 }
70 return new PhpHttpRequest( $url, $options, $caller, Profiler::instance() );
71 default:
72 throw new DomainException( __METHOD__ . ': The setting of Http::$httpEngine is not valid.' );
73 }
74 }
75
81 public function canMakeRequests() {
82 return function_exists( 'curl_init' ) || wfIniGetBool( 'allow_url_fopen' );
83 }
84
85}
and that you know you can do these things To protect your we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights These restrictions translate to certain responsibilities for you if you distribute copies of the or if you modify it For if you distribute copies of such a whether gratis or for a you must give the recipients all the rights that you have You must make sure that receive or can get the source code And you must show them these terms so they know their rights We protect your rights with two and(2) offer you this license which gives you legal permission to copy
wfIniGetBool( $setting)
Safety wrapper around ini_get() for boolean settings.
MWHttpRequest implemented using internal curl compiled into PHP.
MWHttpRequest implemented using the Guzzle library.
Various HTTP related functions.
Definition Http.php:27
static $httpEngine
Definition Http.php:28
This wrapper class will call out to curl (if available) or fallback to regular PHP if necessary for h...
Factory creating MWHttpRequest objects.
create( $url, array $options=[], $caller=__METHOD__)
Generate a new MWHttpRequest object.
canMakeRequests()
Simple function to test if we can make any sort of requests at all, using cURL or fopen()
PSR-3 logger instance factory.
Profiler base class that defines the interface and some trivial functionality.
Definition Profiler.php:33
static instance()
Singleton.
Definition Profiler.php:62
null means default in associative array with keys and values unescaped Should be merged with default with a value of false meaning to suppress the attribute in associative array with keys and values unescaped & $options
Definition hooks.txt:1999
The wiki should then use memcached to cache various data To use multiple just add more items to the array To increase the weight of a make its entry a array("192.168.0.1:11211", 2))