MediaWiki 1.31/zh

MediaWiki 1.31是MediaWiki的最新发行版本. 参阅文件获取完整更新列表. 自2017年9月26日起，通过增量更新的"wmf"-分支部署在维基基金会管理的wiki上. 2018年6月13日1.31.0的稳定版本已发布. 下载或者在Git中签出 分支以关注此发布版本.

新增的附带扩展
与MediaWiki tarball捆绑在一起的扩展集已经增加. 新增内容包括：


 * 提供了在Wiki上编辑CSS和JavaScript时更友好的编辑界面.
 * 为图片或图片集提供一个灯箱效果的浏览.
 * 为Wiki帐号提供双因素身份验证.
 * 向管理员提供一个表格用于全Wiki的页面内容和页面标题的字符串替换.
 * 向管理员提供一个表格用于全Wiki的页面内容和页面标题的字符串替换.

Nuke扩展由于错误未包含在 MediaWiki 1.31.0 的Tar包中. 若您需要使用该扩展，请单独下载该扩展. 这将会在下一个MediaWiki的版本中修复.

Timeless皮肤
Timeless 是MediaWiki现在附带的一个全新响应皮肤.

CologneBlue 与 Modern
皮肤CologneBlue和皮肤Modern不再附带，不过它们仍然与MediaWiki兼容. 若您将升级且安装上述皮肤，请单独将它们下载下来.

Tidy已替换为HTML 5解析算法

 * 请参阅常见问题获取更多信息. 

基于HTML 4的Tidy库已经被名为RemexHtml的纯PHP HTML 5解析器所取代，以现代和标准兼容的方式清理不正确的wiki文本. 如果您的内容依赖于一些尚未完成的整洁修复，则需要修复它们.

您可以将Linter扩展与Parsoid结合使用来识别导致RemexHtml解析器渲染不同的问题的页面. ParserMigration扩展向编辑显示了渲染与整洁和RemexHtml的并排比较.

跨维基用户名
MediaWiki现在在修订版，日志条目等中支持 等格式的跨维基用户名. 这允许从外部wiki（例如由Wikibase生成）正确记录导入和事件，而不会混淆现在存在或可能在将来创建的本地帐户.


 * （）导入现在将以 之类的格式记录未知（和可选的已知）用户名.
 * （） （用于历史页面、日志页面等）将显示形成为 Example的用户名作为跨维基链接 ，好像通过维基文本，如.

进一步的UI标准化

 * 作为MediaWiki产品标准化对话框的第一步，Html类现在为messageBox，successBox，errorBox提供了帮助方法. warningBox生成.

其他功能更新

 * 为所有用户添加90编辑/分钟的默认编辑速率限制. 这可以通过设置来更改.
 * （）仅影响 操作.
 * （）名为 的用户子页面现在受到与 和 页面，以便可以安全地放置配置选项.
 * 文件页面的信息页面现在在基本信息表中显示文件的base-16 SHA1哈希值.
 * pingback功能现在将发送每月心跳ping以识别活动的wiki.
 * 链接到不存在的页面的标签（如未创建的讨论页面的标签）现在有一个工具提示来指示状态，而不仅仅是颜色.

语言在1.31更新
MediaWiki支持350多种语言. 许多地方定期更新. 下面仅列出了新的和删除的语言，以及由于Phabricator报告，语言发生了变化.


 * Mirandese (mwl) now supports gendered /.
 * New language support: Nyungar (nys).
 * New language support: Siberian Tatar [cебертатар] (sty).
 * New language support: Guianan Creole (gcr).
 * New language support: Kumyk [къумукъ] (kum).
 * New language support: Spanish formal address (es-formal).
 * New language support: Hungarian formal address (hu-formal).
 * New language support: Gorontalo (gor).

现在需要PHP7或HHVM
MediaWiki 1.31需要PHP 7.0.0或更高版本. 虽然支持HHVM 3.18.5或更高版本，但通常建议使用PHP 7.0.0或更高版本来获得长期支持.

数据库更改
自1.30以来，1.31有几个数据库更改，如果没有架构更新，则无法运行. PostgreSQL用户现在需要9.2或更高版本.

Revision table
Note that due to changes to some very large tables like the revision table, the schema update may take quite long (minutes on a medium sized site, many hours on a large site). Don't forget to always back up your database before upgrading!

Archive table
If you're using MySQL, SQLite, or MSSQL, are not using update.php to apply schema changes, and cannot have downtime to run  and apply   manually, you'll have to apply a default value to the   and   columns of the   table or make those columns nullable before upgrading to MediaWiki 1.31. shows how to do this for MySQL.

Actor table
The identity of the logged-in or IP "actor" for logged actions is being moved into a new  table, with the rows in tables such as revision and logging referring to the actor ID instead of storing the user ID and name/IP in every row.


 * This is currently gated by . Most wikis can set this to  and run   as soon as any necessary extensions are updated.
 * Most code accessing rows for logged actions from the database should use the relevant  methods to get the information needed to build the SQL query. The   class may also be used to get feature-flagged information needed to access actor-related fields during the migration period.

Configuration changes

 * and are now deprecated and will be removed in a future version. The API is now considered to be stable, secure and essential.
 * was removed, as it is now the default. This was documented as a temporary variable during the migration period, deprecated since 1.29.
 * has been updated to support SVG images and uses where possible for fallback images such as PNG.
 * will no longer ignore ' ' when user does not have the right to mark things patrolled.
 * Wikis that contain imported revisions or CentralAuth global blocks should run.
 * The configuration settings and, deprecated since 1.27, were removed.
 * now supports having fallbacks for browsers that are not using the latest version of the Referrer Policy specification.
 * is now set to  by default. This is a first step of migration to human-readable section IDs that will later result in ' ' being the default mode.
 * now only supports APC(u) or WinCache. XCache support was removed as upstream is inactive and has no plans to move to PHP 7.
 * The old  feature, including its related configuration option, has been removed.
 * The ' ' value for is no longer supported for performance reasons, and installations with this setting will now work as if it was configured with ' '.
 * MediaWiki now defaults to using  to tidy up user input, rather than being off by default. If you wish to disable HTML tidying entirely, set  to  ; if you wish to use the old, deprecated Tidy external binary, both set  to   and  to.
 * now defaults to  instead of.
 * was removed and will be ignored.
 * , deprecated and ignored since 1.25, was removed. See the 1.25 release notes for more information.
 * is now marked as deprecated, just like the deprecated AJAX framework that it enables. Some extensions mistakenly used this to check whether any AJAX functionality at all should be enabled, further making this problematic to retain.
 * is now deprecated, and will be removed in a future version. It has been marked as experimental ever since it was introduced.
 * now affects all database types. Old MediaWiki versions were setting this to 'mediawiki' during the installer, which may cause errors during the upgrade when your database is not PostgreSQL or MSSQL. In that case, remove this setting from LocalSettings.php.

Changes since MediaWiki 1.31.0-rc.2

 * Initialize PSR-4 namespaces at same stage as normal autoloader.
 * Hide MySQL binary/utf-8 charset option in the installer.
 * Don't allow setting in the installer.
 * php-memcached 3.0 (provided with PHP 7.0) is now supported.
 * now works on PHP 7.1+
 * Fix exception from  deref on HHVM in the   hook.
 * The  of   files is now able to be zero.
 * Validate  in  /  parser functions.

Changes since MediaWiki 1.31.0-rc.0

 * Drop  and.
 * Use codepoint as tiebreaker when getting first-letters in.
 * Don't shell during the installer if shelling out is disabled.
 * Improve duplicate config setting exception as part of extension registration.
 * Don't require trailing slash in PSR-4 autoloader directory.
 * Fix PHP Notice from ` ` in ` `.
 * Do not incorrectly hide namespace input field in the installer.
 * Refactor checks looking for PEAR maik libraries to be clearer.

New developer features in 1.31

 * and similar methods now support joins with parentheses for grouping.
 * As a first pass in standardizing dialog boxes across the MediaWiki product, Html class now provides helper methods for,  ,   and   generation.
 * The ' ' hook allows extensions to auto-create users during an import.
 * Added a hook,, to allow extensions to affect the   post-cache transformations.
 * Added a hook,, to allow extensions to alter the initial page text for file uploads.
 * Style tags with a ' ' attribute will be deduplicated as a  post-cache transformation. This may be disabled by passing   to that method.
 * Added, to roll back an atomic section without having to roll back the whole transaction.
 * , non-native, and non-MySQL   and   no longer roll back the whole transaction on failure.
 * The CLI installer learned to detect and include extensions. Pass   to enable that feature.
 * now has three states: " " for, " " for manually patrolled, and " " for autopatrolled actions.
 * Extensions can now set their type to " " if they provide an editor or enhance the editing experience.
 * Extensions can use a PSR-4 autoloader by setting an " " property in . See the documentation for more details and an example.

External library changes in 1.31

 * ,  and   have been moved from   to  . These packages now must be installed via composer and not via PEAR itself.

Upgraded external libraries

 * Updated  from v0.9.14 to v1.8.2.
 * Updated  from 1.1.4 to 1.3.0 (development dependency).
 * Updated  from 2.1.0 to 3.1.3 (development dependency).
 * Updated  from 1.1.0 to 1.2.0.
 * Updated  from 2.0.0 to 2.1.1.
 * Updated  from 1.1.0 to 1.2.0.
 * Updated  from 2.2.0 to 2.3.0.
 * Updated  from 1.1.0 to 1.2.0.
 * Updated  from 1.0.4 to 1.0.6.
 * Updated  from 1.0.2 to 1.0.3.
 * Updated  from 1.0.1 to 1.0.2.

New external libraries

 * Added  1.0.0

Removed and replaced external libraries

 * The deprecated ' ' module was removed.
 * The deprecated ' ' module was removed. Use the CSS  property instead.
 * The deprecated ' ' module was removed.
 * The deprecated ' ' module was removed. Use the ' ' module instead.


 * was replaced with.

Bug fixes in 1.31

 * Non-breaking space in header ID breaks anchor.
 * CSSMin now allows quoted urls in ` ` syntax to start with a space.
 * : Whitespace created by category and language links is now stripped rather than leaving blank lines in odd places.
 * Uploads with UTF-8 names now work on PHP7.1+ on Windows servers.
 * now works on PHP 7.1+

Action API changes in 1.31

 * The ' ' value to  for   has been removed. It has never made a difference in the output, the name was always returned regardless.
 * The ' ' and ' ' parameters for  have been removed. They were deprecated and also accidentally nonfunctional since 1.17 in 2010. Use ' ' instead.

Action API internal changes in 1.31

 * , deprecated since 1.25, was removed.
 * , deprecated since 1.25, was removed.
 * , deprecated since 1.25, was removed.

Breaking changes in 1.31

 * , deprecated in 1.27, was removed.
 * The  class constructor now requires a   parameter. Instantiating without context was deprecated in 1.18.
 * The  JavaScript singleton, deprecated in 1.30, was removed.
 * ,, and the related   constants, deprecated in 1.29, were removed.
 * The,  ,  , and   methods, deprecated in 1.24, were removed.
 * and  were removed. Use   instead.
 * The deprecated  constant was removed.   should be used instead.
 * Due to significant refactoring, method  that had no access restriction has been removed.
 * The  class will no longer accept usable-but-missing usernames for   or  . Callers should either ensure the blocker exists locally or use a new interwiki-format username like " ".
 * The following methods and constants from the  class, which were deprecated in 1.27, have been removed:
 * The  parameter of   was removed., the corresponding configuration variable, has been deprecated since 1.27 and was removed as well.
 * The  parameter of   was removed., the corresponding configuration variable, has been deprecated since 1.27 and was removed as well.
 * The  class, deprecated in 1.27, was removed. The namespaced   class should be used instead.
 * The driver ' ' for MySQL, deprecated in MediaWiki 1.30, has been removed. The driver has been deprecated since PHP 5.5 and was removed in PHP 7.0. The default driver for MySQL has been ' ' since MediaWiki 1.22.
 * The following properties of  were deprecated in 1.21 and have been removed:
 * objects which are generated using a non-default value for  can no longer be added to the parser cache.
 * The following deprecated methods from the  class have been removed:
 * ; deprecated in 1.27
 * ; deprecated in 1.27
 * ; deprecated in 1.28 (obsolete no-op)
 * ; deprecated in 1.27
 * ; deprecated in 1.25
 * ; deprecated in 1.25
 * *Additionally, the protected  array, only accessed through the above and with no known uses, was removed.
 * The no-op method, deprecated in 1.27, was removed.
 * The following variables and methods in, deprecated in MediaWiki 1.30, were removed:
 * — use
 * — use
 * — use
 * – use
 * – use
 * – use
 * – use  or
 * – use  or
 * , deprecated in 1.29, has been removed.
 * In, the cookie-related methods which were wrappers for the functions on the response object, and were deprecated in 1.27, have been removed:
 * *Note that  remains, and is not deprecated.
 * Also in, some auth-related methods which were deprecated in 1.27 have been removed:
 * – use
 * – create a  directly
 * The global functions  and , deprecated in 1.25, have been removed.
 * , deprecated in 1.24, has been removed. You can use  instead.
 * , deprecated in 1.25, has been removed. You can use  instead.
 * The global function, deprecated in 1.27, has been removed. Use   directly.
 * Calling  explicitly during an implicit transaction or when   is set results in an exception. Calling   explicitly for an implicit transaction also results in an exception. Previously these were logged as errors. The   and   methods, or , should be used instead.
 * The global function  was removed; use the its replacement   instead. The global function was only sometimes defined. Its replacement is always available via the autoloader.
 * and, deprecated in 1.28, have been removed. Use   and   instead.
 * , deprecated in 1.25, has been removed. You can use  instead.
 * &, deprecated in 1.25, have been removed.
 * The  class, deprecated in 1.25 and unused, has been removed.
 * The  hook, deprecated in 1.30, has been removed. Use   to expose local variables instead of global ones.
 * As part of work to modernise user-generated content clean-up, a config option and some methods related to HTML validity were removed without deprecation. The public methods  and the path through which it was called, , are removed, as are the testing methods   and  . The $  configuration option is removed and will be ignored.
 * Execution of external programs using  now applies the   Firejail restriction by default.
 * The  and   methods, deprecated in 1.26, were removed.
 * The deprecated ' ' module alias was removed. Use the ' ' module directly.
 * The global functions  and , deprecated in 1.25, have been removed.
 * , deprecated in 1.24, has been removed. You can use  instead.
 * , deprecated in 1.25, has been removed. You can use  instead.
 * The global function, deprecated in 1.27, has been removed. Use   directly.
 * Calling  explicitly during an implicit transaction or when   is set results in an exception. Calling   explicitly for an implicit transaction also results in an exception. Previously these were logged as errors. The   and   methods, or , should be used instead.
 * The global function  was removed; use the its replacement   instead. The global function was only sometimes defined. Its replacement is always available via the autoloader.
 * and, deprecated in 1.28, have been removed. Use   and   instead.
 * , deprecated in 1.25, has been removed. You can use  instead.
 * &, deprecated in 1.25, have been removed.
 * The  class, deprecated in 1.25 and unused, has been removed.
 * The  hook, deprecated in 1.30, has been removed. Use   to expose local variables instead of global ones.
 * As part of work to modernise user-generated content clean-up, a config option and some methods related to HTML validity were removed without deprecation. The public methods  and the path through which it was called, , are removed, as are the testing methods   and  . The $  configuration option is removed and will be ignored.
 * Execution of external programs using  now applies the   Firejail restriction by default.
 * The  and   methods, deprecated in 1.26, were removed.
 * The deprecated ' ' module alias was removed. Use the ' ' module directly.
 * The deprecated ' ' module alias was removed. Use the ' ' module directly.

Deprecations in 1.31

 * The  class was deprecated in favor of ,  , and   and its subclasses.
 * The global function  is deprecated in favour of
 * The global function  is now deprecated in favor of
 * Several methods for returning lists of fields to select from the database have been deprecated in favor of similar methods that also return the tables to select from and the join conditions for those tables.
 * with a prefix no longer works
 * with a prefix no longer works
 * was deprecated.
 * Access to  class properties was deprecated, the relevant getters should be used instead.
 * is deprecated. Subclasses should override  instead.
 * Use of  to exit a script was deprecated. Use   instead.
 * Passing a  object to   is deprecated.
 * The  hook is now deprecated; use instead the hook  .   is still called, but the second and third parameter will always be  . Hard deprecation is scheduled for 1.32.
 * The following methods that get and set  state are deprecated. Callers should use the new stateless   parameter to   instead.
 * *The public  state fields   and   are also deprecated.
 * has been deprecated; use  instead.
 * was deprecated in favour of . Setting template variables by reference allowed violating the principle of data being immutable once added to the skin template. In practice, this method was not being used for that. Rather,   existed as memory optimisation for PHP 4.
 * and  were deprecated in favour of   parameters.
 * was deprecated in favour of  or
 * Passing  to   is deprecated. Use the ' ' transform to   instead.
 * (no namespace) is deprecated, the namespaced class  from the   library should be used instead.
 * is deprecated. Instead, get an instance from.
 * The following  methods have had their signatures changed to introduce a   parameter, usage of the methods on instances retrieved from   will remain unchanged but deprecated:
 * The following methods in  have been renamed, and the old ones are deprecated:
 * – use
 * – use
 * – use
 * – use
 * – use
 * The following methods related to caching of half-parsed HTML were deprecated:
 * The  class is deprecated, use   instead.
 * The type  for the parameter   of   is deprecated.
 * is deprecated.
 * The  constant is deprecated.   should be used instead.
 * The function  has been deprecated, use.
 * In the future, the hooks ' ' and ' ' will be allowed to provide any HTMLForm object rather than.
 * *The public  state fields   and   are also deprecated.
 * has been deprecated; use  instead.
 * was deprecated in favour of . Setting template variables by reference allowed violating the principle of data being immutable once added to the skin template. In practice, this method was not being used for that. Rather,   existed as memory optimisation for PHP 4.
 * and  were deprecated in favour of   parameters.
 * was deprecated in favour of  or
 * Passing  to   is deprecated. Use the ' ' transform to   instead.
 * (no namespace) is deprecated, the namespaced class  from the   library should be used instead.
 * is deprecated. Instead, get an instance from.
 * The following  methods have had their signatures changed to introduce a   parameter, usage of the methods on instances retrieved from   will remain unchanged but deprecated:
 * The following methods in  have been renamed, and the old ones are deprecated:
 * – use
 * – use
 * – use
 * – use
 * – use
 * The following methods related to caching of half-parsed HTML were deprecated:
 * The  class is deprecated, use   instead.
 * The type  for the parameter   of   is deprecated.
 * is deprecated.
 * The  constant is deprecated.   should be used instead.
 * The function  has been deprecated, use.
 * In the future, the hooks ' ' and ' ' will be allowed to provide any HTMLForm object rather than.
 * The following methods related to caching of half-parsed HTML were deprecated:
 * The  class is deprecated, use   instead.
 * The type  for the parameter   of   is deprecated.
 * is deprecated.
 * The  constant is deprecated.   should be used instead.
 * The function  has been deprecated, use.
 * In the future, the hooks ' ' and ' ' will be allowed to provide any HTMLForm object rather than.
 * The type  for the parameter   of   is deprecated.
 * is deprecated.
 * The  constant is deprecated.   should be used instead.
 * The function  has been deprecated, use.
 * In the future, the hooks ' ' and ' ' will be allowed to provide any HTMLForm object rather than.

Other changes in 1.31

 * Browser support for Internet Explorer 10 was lowered from Grade A to Grade C.
 * Browser support for Opera 12 and older was dropped entirely. Opera 15+ continues at Grade A.
 * Multi-content-revision capability was introduced into the storage layer. See .
 * The " " CSS class is now only applied to unbracketed URLs in wikitext. Links written using square brackets will get the class " ", not " ".
 * : Whitespace is trimmed from wikitext headings, wikitext list items, wikitext table captions, wikitext table headings, wikitext table cells. HTML headings, HTML list items, HTML table captions, HTML table headings, HTML table cells will not have this trimming behavior.