* @param string $file Filename
* @param array $context Additional logging context data
* @throws MWException
- * @deprecated since 1.25 Use MediaWiki\Logger\LegacyLogger::emit or UDPTransport
+ * @deprecated since 1.25 Use \\MediaWiki\\Logger\\LegacyLogger::emit or UDPTransport
*/
function wfErrorLog( $text, $file, array $context = array() ) {
wfDeprecated( __METHOD__, '1.25' );
return $readOnly;
}
- static $autoReadOnly = null;
- if ( $autoReadOnly === null ) {
+ static $lbReadOnly = null;
+ if ( $lbReadOnly === null ) {
// Callers use this method to be aware that data presented to a user
// may be very stale and thus allowing submissions can be problematic.
- try {
- if ( wfGetLB()->getLaggedSlaveMode() ) {
- $autoReadOnly = 'The database has been automatically locked ' .
- 'while the slave database servers catch up to the master';
- } else {
- $autoReadOnly = false;
- }
- } catch ( DBConnectionError $e ) {
- $autoReadOnly = 'The database has been automatically locked ' .
- 'until the slave database servers become available';
- }
+ $lbReadOnly = wfGetLB()->getReadOnlyReason();
}
- return $autoReadOnly;
+ return $lbReadOnly;
}
/**
* @return string
*/
function wfFormatStackFrame( $frame ) {
- return isset( $frame['class'] ) ?
- $frame['class'] . '::' . $frame['function'] :
+ if ( !isset( $frame['function'] ) ) {
+ return 'NO_FUNCTION_GIVEN';
+ }
+ return isset( $frame['class'] ) && isset( $frame['type'] ) ?
+ $frame['class'] . $frame['type'] . $frame['function'] :
$frame['function'];
}
$status = false;
$logMsg = false;
- // According to the documentation, it is possible for stream_select()
- // to fail due to EINTR. I haven't managed to induce this in testing
- // despite sending various signals. If it did happen, the error
- // message would take the form:
- //
- // stream_select(): unable to select [4]: Interrupted system call (max_fd=5)
- //
- // where [4] is the value of the macro EINTR and "Interrupted system
- // call" is string which according to the Linux manual is "possibly"
- // localised according to LC_MESSAGES.
+ /* According to the documentation, it is possible for stream_select()
+ * to fail due to EINTR. I haven't managed to induce this in testing
+ * despite sending various signals. If it did happen, the error
+ * message would take the form:
+ *
+ * stream_select(): unable to select [4]: Interrupted system call (max_fd=5)
+ *
+ * where [4] is the value of the macro EINTR and "Interrupted system
+ * call" is string which according to the Linux manual is "possibly"
+ * localised according to LC_MESSAGES.
+ */
$eintr = defined( 'SOCKET_EINTR' ) ? SOCKET_EINTR : 4;
$eintrMessage = "stream_select(): unable to select [$eintr]";
* @return string
*/
function wfMemcKey( /*...*/ ) {
- global $wgCachePrefix;
- $prefix = $wgCachePrefix === false ? wfWikiID() : $wgCachePrefix;
- $args = func_get_args();
- $key = $prefix . ':' . implode( ':', $args );
- return strtr( $key, ' ', '_' );
+ return call_user_func_array(
+ array( ObjectCache::getLocalClusterInstance(), 'makeKey' ),
+ func_get_args()
+ );
}
/**
*/
function wfForeignMemcKey( $db, $prefix /*...*/ ) {
$args = array_slice( func_get_args(), 2 );
- if ( $prefix ) {
- // Match wfWikiID() logic
- $key = "$db-$prefix:" . implode( ':', $args );
- } else {
- $key = $db . ':' . implode( ':', $args );
- }
- return strtr( $key, ' ', '_' );
+ $keyspace = $prefix ? "$db-$prefix" : $db;
+ return call_user_func_array(
+ array( ObjectCache::getLocalClusterInstance(), 'makeKeyInternal' ),
+ array( $keyspace, $args )
+ );
}
/**
* @return string
*/
function wfGlobalCacheKey( /*...*/ ) {
- $args = func_get_args();
- $key = 'global:' . implode( ':', $args );
- return strtr( $key, ' ', '_' );
+ return call_user_func_array(
+ array( ObjectCache::getLocalClusterInstance(), 'makeGlobalKey' ),
+ func_get_args()
+ );
}
/**
*/
function wfGetScriptUrl() {
if ( isset( $_SERVER['SCRIPT_NAME'] ) ) {
- #
- # as it was called, minus the query string.
- #
- # Some sites use Apache rewrite rules to handle subdomains,
- # and have PHP set up in a weird way that causes PHP_SELF
- # to contain the rewritten URL instead of the one that the
- # outside world sees.
- #
- # If in this mode, use SCRIPT_URL instead, which mod_rewrite
- # provides containing the "before" URL.
+ /* as it was called, minus the query string.
+ *
+ * Some sites use Apache rewrite rules to handle subdomains,
+ * and have PHP set up in a weird way that causes PHP_SELF
+ * to contain the rewritten URL instead of the one that the
+ * outside world sees.
+ *
+ * If in this mode, use SCRIPT_URL instead, which mod_rewrite
+ * provides containing the "before" URL.
+ */
return $_SERVER['SCRIPT_NAME'];
} else {
return $_SERVER['URL'];
* Converts shorthand byte notation to integer form
*
* @param string $string
+ * @param int $default Returned if $string is empty
* @return int
*/
-function wfShorthandToInteger( $string = '' ) {
+function wfShorthandToInteger( $string = '', $default = -1 ) {
$string = trim( $string );
if ( $string === '' ) {
- return -1;
+ return $default;
}
$last = $string[strlen( $string ) - 1];
$val = intval( $string );