* no valid URL can be constructed
*/
function wfExpandUrl( $url, $defaultProto = PROTO_CURRENT ) {
- global $wgServer, $wgCanonicalServer, $wgInternalServer;
- $serverUrl = $wgServer;
+ global $wgServer, $wgCanonicalServer, $wgInternalServer, $wgRequest;
if ( $defaultProto === PROTO_CANONICAL ) {
$serverUrl = $wgCanonicalServer;
- }
- // Make $wgInternalServer fall back to $wgServer if not set
- if ( $defaultProto === PROTO_INTERNAL && $wgInternalServer !== false ) {
+ } elseif ( $defaultProto === PROTO_INTERNAL && $wgInternalServer !== false ) {
+ // Make $wgInternalServer fall back to $wgServer if not set
$serverUrl = $wgInternalServer;
- }
- if ( $defaultProto === PROTO_CURRENT ) {
- $defaultProto = WebRequest::detectProtocol() . '://';
+ } else {
+ $serverUrl = $wgServer;
+ if ( $defaultProto === PROTO_CURRENT ) {
+ $defaultProto = $wgRequest->getProtocol() . '://';
+ }
}
+
// Analyze $serverUrl to obtain its protocol
$bits = wfParseUrl( $serverUrl );
$serverHasProto = $bits && $bits['scheme'] != '';
if ( $useLogPipe ) {
$desc[3] = array( 'pipe', 'w' );
}
+
+ # TODO/FIXME: This is a bad hack to workaround an HHVM bug that prevents
+ # proc_open() from opening stdin/stdout, so use /dev/null *for now*
+ # See bug 56597 / https://github.com/facebook/hhvm/issues/1247 for more info
+ if ( wfIsHHVM() ) {
+ $desc[0] = array( 'file', '/dev/null', 'r' );
+ $desc[2] = array( 'file', '/dev/null', 'w' );
+ }
+
$pipes = null;
$proc = proc_open( $cmd, $desc, $pipes );
if ( !$proc ) {
return implode( DIRECTORY_SEPARATOR, $pieces );
}
-/**
- * Do any deferred updates and clear the list
- *
- * @deprecated since 1.19
- * @see DeferredUpdates::doUpdate()
- * @param $commit string
- */
-function wfDoUpdates( $commit = '' ) {
- wfDeprecated( __METHOD__, '1.19' );
- DeferredUpdates::doUpdates( $commit );
-}
-
/**
* Convert an arbitrarily-long digit string from one numeric base
* to another, optionally zero-padding to a minimum column width.
return str_pad( $result, $pad, '0', STR_PAD_LEFT );
}
-/**
- * Create an object with a given name and an array of construct parameters
- *
- * @param $name String
- * @param array $p parameters
- * @return object
- * @deprecated since 1.18, warnings in 1.18, removal in 1.20
- */
-function wfCreateObject( $name, $p ) {
- wfDeprecated( __FUNCTION__, '1.18' );
- return MWFunction::newObj( $name, $p );
-}
-
/**
* @return bool
*/
* @param string|bool $cluster Cluster name accepted by LBFactory. Default: false.
*/
function wfWaitForSlaves( $maxLag = false, $wiki = false, $cluster = false ) {
- if( $cluster !== false ) {
+ if ( $cluster !== false ) {
$lb = wfGetLBFactory()->getExternalLB( $cluster );
} else {
$lb = wfGetLB( $wiki );
}
}
-/**
- * Used to be used for outputting text in the installer/updater
- * @deprecated since 1.18, warnings in 1.18, remove in 1.20
- */
-function wfOut( $s ) {
- wfDeprecated( __FUNCTION__, '1.18' );
- global $wgCommandLineMode;
- if ( $wgCommandLineMode ) {
- echo $s;
- } else {
- echo htmlspecialchars( $s );
- }
- flush();
-}
-
/**
* Count down from $n to zero on the terminal, with a one-second pause
* between showing each number. For use in command-line scripts.