Current configuration on the wiki
Find a file
Tacsipacsi 1f73b5d5e4 feeds: Fix str_replace() deprecation warnings on PHP 8
Why:

Both AtomFeed::formatTime() and RSSFeed::formatTime() short-circuit with
null if the input is falsy. This caused deprecation warnings down the
line, as the return value was later fed into str_replace(), which raises
a deprecation warning on PHP 8 if it gets null.

It also caused unexpected output on all PHP versions: the Mustache
templates for both Atom and RSS conditionally emit the date elements
(<updated> in Atom, <pubDate> in RSS), but this conditional output is
skipped only if the variable is null, not when it’s an empty string –
which is exactly what the XML encoding returned on all PHP versions.

What:

Introduce a new method, xmlEncodeNullable(), which properly handles null
values, and returns them as-is, without trying to encode them. This:

- Avoids the deprecation warnings on PHP 8, since str_replace() is no
  longer called.
- Makes the conditional output work: the <updated>/<pubDate> elements
  are no longer output if no date is available.
  - This makes the RSS output spec-compliant, as no garbage is output
    anymore. The RSS <pubDate> is optional [1].
  - It doesn’t make the Atom output entirely spec-compliant, as Atom
    requires <updated> to be present [2], but the removal of garbage
    (it was a single letter Z) should still increase compatibility.

[1] https://www.rssboard.org/rss-specification#hrelementsOfLtitemgt
[2] https://validator.w3.org/feed/docs/atom.html#requiredEntryElements

Bug: T385332
Change-Id: Iafd89c0d61baecd7c68f62b2a0764cc78cf25069
(cherry picked from commit 60c57b0fd5303e9627b7684ebac4cd369c1fe7a6)
2025-02-18 21:44:56 +00:00
.phan Introduce minimal OTEL tracing library 2024-10-09 15:55:31 +02:00
cache Update Apache config syntax in .htaccess files 2024-03-23 23:36:31 -04:00
docs DnsBlacklistUrls: Remove sorbs.net 2025-01-06 22:57:01 +00:00
extensions Update git submodules 2025-02-18 06:26:57 +00:00
images
includes feeds: Fix str_replace() deprecation warnings on PHP 8 2025-02-18 21:44:56 +00:00
languages Localisation updates from https://translatewiki.net. 2025-02-18 06:32:08 +01:00
maintenance dumps: Use proc_close() to close proc_open() subprocess 2025-01-18 06:03:18 +00:00
mw-config installer: Fix class name in example override 2025-01-25 15:07:10 +00:00
resources Commit swagger-ui's NOTICE 2025-01-15 16:09:22 +00:00
skins Update git submodules 2025-02-18 06:28:13 +00:00
tests rest: Return a 400 for invalid render IDs 2025-02-04 14:54:50 +00:00
vendor@5fc55a9b0f Update git submodules 2024-11-22 13:21:05 +00:00
.dockerignore
.editorconfig Fix .editorconfig for tests/parser/ directory 2024-02-27 17:35:16 +01:00
.eslintignore REST: validate JSON in tests 2024-09-20 15:42:32 +00:00
.eslintrc.json
.fresnel.yml
.git-blame-ignore-revs Add .git-blame-ignore-revs 2024-06-02 23:03:04 +02:00
.gitattributes
.gitignore Branch commit for REL1_43 2024-10-22 12:47:33 -04:00
.gitmessage
.gitmodules Branch commit for REL1_43 2024-10-22 12:47:33 -04:00
.gitreview
.mailmap build: De-duplicate two recent CREDITS additions via mailmap 2024-09-11 10:02:02 -07:00
.phpcs.xml build: Use inline ignore for MediaWiki.Usage.DeprecatedGlobalVariables 2024-09-26 18:15:32 +00:00
.stylelintrc.json
.svgo.config.js
.vsls.json
api.php Namespace includes/context 2024-02-08 11:07:01 -05:00
autoload.php Remove CryptHKDF and MWCryptHKDF 2024-11-10 22:49:37 -05:00
CODE_OF_CONDUCT.md
composer.json build: Updating npm dependencies 2025-01-06 08:38:45 -05:00
composer.local.json-sample
COPYING
CREDITS build: De-duplicate two recent CREDITS additions via mailmap 2024-09-11 10:02:02 -07:00
DEVELOPERS.md Codex: Allow a local development version to be used 2024-08-22 17:20:24 -07:00
docker-compose.yml dev(docker): Bump mediawiki-web container to dev/bookworm-apache2:1.0.1 2025-01-07 17:02:36 +00:00
FAQ
Gruntfile.js Merge "codex: Provide i18n function and messages" 2024-07-03 07:06:47 +00:00
HISTORY HISTORY: Add point releases 2024-10-01 02:21:50 +01:00
img_auth.php filerepo: extract AuthenticatedFileEntryPoint from img_auth.php 2024-05-16 13:22:00 +02:00
index.php Namespace includes/context 2024-02-08 11:07:01 -05:00
INSTALL Move ext-openssl from suggest to require 2024-05-05 09:42:06 +00:00
jsdoc.json Update jsdoc-wmf-theme from 1.0.1 to 1.1.0 2024-06-27 19:29:24 +00:00
load.php ResourceLoader: Follow-up creation of ResourceLoaderEntryPoint 2024-02-22 22:30:39 +00:00
opensearch_desc.php Replace direct use of $wgRestPath with wfScript() 2024-07-01 22:01:32 +00:00
package-lock.json build: Updating npm dependencies 2025-01-06 08:38:45 -05:00
package.json Merge "Update Codex from v1.13.1 to v1.14.0" 2024-10-16 17:26:41 +00:00
phpunit.xml.dist
README.md
RELEASE-NOTES-1.43 RELEASE-NOTES-1.43: Add final count for namespacing effort 2025-01-07 21:06:24 +00:00
rest.php Use namespaced classes (1) 2024-06-16 20:18:23 +02:00
SECURITY
thumb.php Use namespaced classes (1) 2024-06-16 20:18:23 +02:00
thumb_handler.php Use namespaced classes (1) 2024-06-16 20:18:23 +02:00
UPGRADE UPGRADE: Update mailing list archive link 2024-04-14 21:36:52 +03:00

MediaWiki

MediaWiki is a free and open-source wiki software package written in PHP. It serves as the platform for Wikipedia and the other Wikimedia projects, used by hundreds of millions of people each month. MediaWiki is localised in over 350 languages and its reliability and robust feature set have earned it a large and vibrant community of third-party users and developers.

MediaWiki is:

  • feature-rich and extensible, both on-wiki and with hundreds of extensions;
  • scalable and suitable for both small and large sites;
  • simple to install, working on most hardware/software combinations; and
  • available in your language.

For system requirements, installation, and upgrade details, see the files RELEASE-NOTES, INSTALL, and UPGRADE.

MediaWiki is the result of global collaboration and cooperation. The CREDITS file lists technical contributors to the project. The COPYING file explains MediaWiki's copyright and license (GNU General Public License, version 2 or later). Many thanks to the Wikimedia community for testing and suggestions.