X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FGlobalFunctions.php;h=e5f518ffd2157a0927719bd38d1ec1aec095e1be;hb=c0f79b0c057ef63a05e140a94a2985d17bb6b3a1;hp=0d669083b9e6f72c7d4842024a44b666fd1aa4f4;hpb=fe79bc528b0e054aa630bd4fcfcdd4a9804892da;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/GlobalFunctions.php b/includes/GlobalFunctions.php index 0d669083b9..e5f518ffd2 100644 --- a/includes/GlobalFunctions.php +++ b/includes/GlobalFunctions.php @@ -358,7 +358,7 @@ function wfRandomString( $length = 32 ) { * * ;:@$!*(),/~ * - * However, IIS7 redirects fail when the url contains a colon (Bug 22709), + * However, IIS7 redirects fail when the url contains a colon (see T24709), * so no fancy : for IIS7. * * %2F in the page titles seems to fatally break for some reason. @@ -617,7 +617,7 @@ function wfExpandUrl( $url, $defaultProto = PROTO_CURRENT ) { * This is the basic structure used (brackets contain keys for $urlParts): * [scheme][delimiter][user]:[pass]@[host]:[port][path]?[query]#[fragment] * - * @todo Need to integrate this into wfExpandUrl (bug 32168) + * @todo Need to integrate this into wfExpandUrl (see T34168) * * @since 1.19 * @param array $urlParts URL parts, as output from wfParseUrl @@ -670,7 +670,7 @@ function wfAssembleUrl( $urlParts ) { * '/a/./b/../c/' becomes '/a/c/'. For details on the algorithm, please see * RFC3986 section 5.2.4. * - * @todo Need to integrate this into wfExpandUrl (bug 32168) + * @todo Need to integrate this into wfExpandUrl (see T34168) * * @param string $urlPath URL path, potentially containing dot-segments * @return string URL path with all dot-segments removed @@ -850,11 +850,11 @@ function wfParseUrl( $url ) { return false; } - /* Provide an empty host for eg. file:/// urls (see bug 28627) */ + /* Provide an empty host for eg. file:/// urls (see T30627) */ if ( !isset( $bits['host'] ) ) { $bits['host'] = ''; - // bug 45069 + // See T47069 if ( isset( $bits['path'] ) ) { /* parse_url loses the third / for file:///c:/ urls (but not on variants) */ if ( substr( $bits['path'], 0, 1 ) !== '/' ) { @@ -1195,6 +1195,7 @@ function wfLogProfilingData() { $statsdPort = isset( $statsdServer[1] ) ? $statsdServer[1] : 8125; $statsdSender = new SocketSender( $statsdHost, $statsdPort ); $statsdClient = new SamplingStatsdClient( $statsdSender, true, false ); + $statsdClient->setSamplingRates( $config->get( 'StatsdSamplingRates' ) ); $statsdClient->send( $context->getStats()->getBuffer() ); } catch ( Exception $ex ) { MWExceptionHandler::logException( $ex ); @@ -1277,7 +1278,7 @@ function wfReadOnly() { * Check if the site is in read-only mode and return the message if so * * This checks wfConfiguredReadOnlyReason() and the main load balancer - * for slave lag. This may result in DB_SLAVE connection being made. + * for replica DB lag. This may result in DB connection being made. * * @return string|bool String when in read-only mode; false otherwise */ @@ -1664,6 +1665,7 @@ function wfClientAcceptsGzip( $force = false ) { * @return string */ function wfEscapeWikiText( $text ) { + global $wgEnableMagicLinks; static $repl = null, $repl2 = null; if ( $repl === null ) { $repl = [ @@ -1681,8 +1683,9 @@ function wfEscapeWikiText( $text ) { '__' => '__', '://' => '://', ]; + $magicLinks = array_keys( array_filter( $wgEnableMagicLinks ) ); // We have to catch everything "\s" matches in PCRE - foreach ( [ 'ISBN', 'RFC', 'PMID' ] as $magic ) { + foreach ( $magicLinks as $magic ) { $repl["$magic "] = "$magic "; $repl["$magic\t"] = "$magic "; $repl["$magic\r"] = "$magic "; @@ -1989,56 +1992,7 @@ function wfRestoreWarnings() { # Autodetect, convert and provide timestamps of various types -/** - * Unix time - the number of seconds since 1970-01-01 00:00:00 UTC - */ -define( 'TS_UNIX', 0 ); - -/** - * MediaWiki concatenated string timestamp (YYYYMMDDHHMMSS) - */ -define( 'TS_MW', 1 ); - -/** - * MySQL DATETIME (YYYY-MM-DD HH:MM:SS) - */ -define( 'TS_DB', 2 ); - -/** - * RFC 2822 format, for E-mail and HTTP headers - */ -define( 'TS_RFC2822', 3 ); - -/** - * ISO 8601 format with no timezone: 1986-02-09T20:00:00Z - * - * This is used by Special:Export - */ -define( 'TS_ISO_8601', 4 ); - -/** - * An Exif timestamp (YYYY:MM:DD HH:MM:SS) - * - * @see http://exif.org/Exif2-2.PDF The Exif 2.2 spec, see page 28 for the - * DateTime tag and page 36 for the DateTimeOriginal and - * DateTimeDigitized tags. - */ -define( 'TS_EXIF', 5 ); - -/** - * Oracle format time. - */ -define( 'TS_ORACLE', 6 ); - -/** - * Postgres format time. - */ -define( 'TS_POSTGRES', 7 ); - -/** - * ISO 8601 basic format with no timezone: 19860209T200000Z. This is used by ResourceLoader - */ -define( 'TS_ISO_8601_BASIC', 9 ); +require_once __DIR__ . '/libs/time/defines.php'; /** * Get a timestamp string in one of various formats @@ -2124,35 +2078,7 @@ function wfTempDir() { return $wgTmpDirectory; } - $tmpDir = array_map( "getenv", [ 'TMPDIR', 'TMP', 'TEMP' ] ); - $tmpDir[] = sys_get_temp_dir(); - $tmpDir[] = ini_get( 'upload_tmp_dir' ); - - foreach ( $tmpDir as $tmp ) { - if ( $tmp && file_exists( $tmp ) && is_dir( $tmp ) && is_writable( $tmp ) ) { - return $tmp; - } - } - - /** - * PHP on Windows will detect C:\Windows\Temp as not writable even though PHP can write to it - * so create a directory within that called 'mwtmp' with a suffix of the user running the - * current process. - * The user is included as if various scripts are run by different users they will likely - * not be able to access each others temporary files. - */ - if ( wfIsWindows() ) { - $tmp = sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'mwtmp' . '-' . get_current_user(); - if ( !file_exists( $tmp ) ) { - mkdir( $tmp ); - } - if ( file_exists( $tmp ) && is_dir( $tmp ) && is_writable( $tmp ) ) { - return $tmp; - } - } - - throw new MWException( 'No writable temporary directory could be found. ' . - 'Please set $wgTmpDirectory to a writable directory.' ); + return TempFSFile::getUsableTempDirectory(); } /** @@ -2305,7 +2231,7 @@ function wfEscapeShellArg( /*...*/ ) { // Refs: // * http://web.archive.org/web/20020708081031/http://mailman.lyra.org/pipermail/scite-interest/2002-March/000436.html // * http://technet.microsoft.com/en-us/library/cc723564.aspx - // * Bug #13518 + // * T15518 // * CR r63214 // Double the backslashes before any double quotes. Escape the double quotes. // @codingStandardsIgnoreEnd @@ -3124,7 +3050,7 @@ function wfSplitWikiID( $wiki ) { * Get a Database object. * * @param int $db Index of the connection to get. May be DB_MASTER for the - * master (for write queries), DB_SLAVE for potentially lagged read + * master (for write queries), DB_REPLICA for potentially lagged read * queries, or an integer >= 0 for a particular server. * * @param string|string[] $groups Query groups. An array of group names that this query @@ -3133,7 +3059,7 @@ function wfSplitWikiID( $wiki ) { * * @param string|bool $wiki The wiki ID, or false for the current wiki * - * Note: multiple calls to wfGetDB(DB_SLAVE) during the course of one request + * Note: multiple calls to wfGetDB(DB_REPLICA) during the course of one request * will always return the same object, unless the underlying connection or load * balancer is manually destroyed. * @@ -3278,10 +3204,10 @@ function wfGetNull() { } /** - * Waits for the slaves to catch up to the master position + * Waits for the replica DBs to catch up to the master position * * Use this when updating very large numbers of rows, as in maintenance scripts, - * to avoid causing too much lag. Of course, this is a no-op if there are no slaves. + * to avoid causing too much lag. Of course, this is a no-op if there are no replica DBs. * * By default this waits on the main DB cluster of the current wiki. * If $cluster is set to "*" it will wait on all DB clusters, including