Compatibility/zh

MediaWiki致力于在包括当前版本和旧保持版本之间广泛的兼容性. 与此同时，不断发展的代码库以及最新MediaWiki开发的功能意味着无法无限期地保持与旧版软件的兼容性.

浏览器
世界上不同种类的浏览器数量在不断增长. 需要通过很多积极地测试去支持它们. 为了描述了我们对浏览器支持的看法，我们分为三个层次的支持. 每个层次代表不同类别的浏览器.

现代（A级）
本组（也被称为A级）表示有'最高级别的支持. 这个级别充分利用了现代浏览器的各种功能，并允许给旧版浏览器一个优雅的反馈. 所有的特性由软件提供（无论是否以一个退化形式），都必须能在这些浏览器正常工作.

此类别中的浏览器是已知的（下面列出），并进行了积极地测试. 用户在这些浏览器中感知到的问题将被高度重视.

基本（C级）
本组（也被成为C级）提供了MediaWiki的核心功能. 我们的HTTP回应与这些浏览器兼容（例如：我们依赖的HTTP特性，字符编码和内容使用的图像格式；必须在这些浏览器中工作）. 在前端意味着内容将以可读的方式呈现，并且在一定程度上可以执行用户动作.

此类别中的浏览器是已知的（下面列出），并通过黑名单在启动模块时确认. 用户在这些浏览器中感知到的问题将被高度重视. 问题处理的重点主要是确保提供的功能的正常；如果从产品的角度来看是可以接受的，这可能会导致不再为这些浏览器提供功能（不论是否是暂时的）.

MediaWiki可能将为这列浏览器提供无Javascript环境. 这个环境可能会缺少某些可视特性和额外功能. 浏览器的核心功能必须通过传统的客户端服务器与完整的GET/POST页面加载进行交互来维护.

未知（X级）
本组（也被称为A级）表示所有其他浏览器. 这包括不再开发的，或是由于不甚常见，不易证明对软件开发有何维护影响的浏览器.

剩下还没分组的浏览器便属于这个级别. 用户在这些浏览器中感知到的问题将被低优先级重视.

MediaWiki handles these browsers the same as Modern (Grade A) browsers and are thus assumed to be capable. This principle provides various important benefits:
 * New versions of modern browsers may temporarily be considered Unknown if they are not yet tested against by us. Treating Unknown browsers as capable ensures optimal user experience in these browsers.
 * Users of new and evolving browsers are given a chance to have a modern experience.
 * Users of less popular browsers based on, or derived from, known modern browsers are not negatively impacted (e.g. Iceweasel).

In practice the only difference between Unknown and Modern browsers is that we don't actively test against Unknown browsers. 这些浏览器会提供完整功能集.

浏览器支持矩阵
While the principles and different grades described above apply to MediaWiki core and extensions alike, the below browser support matrix applies to MediaWiki core only (and extensions that decide to follow it). Individual extensions may have their own support matrix distributing browsers among the different levels of support.

Browser support matrix (mobile)
(Last updated: March 2017)

Mobile-specific skins e.g. Minerva skin provided by MobileFrontend and/or extensions designed to run on mobile devices have a different support matrix. The support matrix is compiled from the data provided by the analytics user agent breakdown dashboard. Where browser usage is over 5% a modern experience is supported. Basic support is provided for anything over 0.1% over the 12 months. In mobile we strive to provide a Grade B. Users of grade may or may not get JavaScript and we do not test to the same level as A, thus we prioritize bug fixes lower.

PHP
MediaWiki的最新稳定分支（）可运行在PHP 到PHP 7.x之间的任意版本. 请注意MediaWiki尚未完全兼容PHP 7.1，并将弹出警告消息，但大多数功能应该能够正常工作. 维基媒体基金会在HHVM上运行MediaWiki. 不在维基媒体wiki上使用的功能目前可能不会在HHVM上正常工作.

MediaWiki 1.27将会继续收到安全更新直到支持周期结束（参阅 版本生命周期），并与各版本PHP保持兼容性.

数据库
MediaWiki兼容不同种类的数据库服务器. 建议使用MySQL或MariaDB.

Using any other database software is not recommended for production use. Support differs from MediaWiki version to MediaWiki version and ranges from dubious to stable. MediaWiki provides database abstraction layers for PostgreSQL and SQLite, which are generally well-maintained. The included abstraction layers for Oracle and Microsoft SQL Server are essentially unmaintained and are unlikely to work out of the box.

Running MediaWiki on anything other than MySQL or MariaDB is not recommended for production use at this point.

Web服务器
MediaWiki is broadly compatible with all major web servers that can invoke a compatible version of PHP. Apache是最经常使用且测试过的. HHVM and nginx are good choices as well.

MediaWiki扩展
As long as an extension is properly maintained (which you can see at the top of the infobox on its description page), the master branch of the extension should be compatible with the master branch of MediaWiki. For determining compatibility with older MediaWiki versions, there are two common policies used by extensions:


 * master (key: master): the master branch of the extension is compatible with both current and older versions of MediaWiki. Back-compatibility hacks are added to the extension source code as needed.
 * release branches (key: rel): For every MediaWiki release, there is a corresponding branch in the extension. So e.g. if you use MediaWiki 1.27 (REL1_27), you should use the REL1_27 branch of the extension.

The compatibility policy field of the infobox tells which policy is used by a given extension. Use the respective keys indicated above to specify the information.

备注

 * 标记为 蓝色 的软件受支持，而标记为 橙色 的软件则不受支持.

参见

 * MediaWiki版本的