MediaWiki 1.31/ja

MediaWiki 1.31 は、MediaWiki の最新リリースです. 変更点の完全な一覧については、 ファイルを参照してください. 2017年9月26日より、漸増する「wmf」ブランチを通して、ウィキメディア財団のウィキ群に展開されました. 1.31.0 安定版リリースは、2018年6月13日にリリースされました. をダウンロードするか、Git 内の  ブランチをチェックアウトしてこのリリースに追随してください.

より多く同梱された拡張機能
MediaWiki の tarball に同梱されている拡張機能集が増加しています. 新しく追加されたものは以下のとおりです：


 * はウィキ上で CSS および JavaScript を編集する際のより使いやすいエディタを提供します.
 * は画像およびギャラリーの lightbox ビューアを提供します.
 * はウィキアカウントの二要素認証を提供します.
 * は、管理者がウィキ全体の文字列置換を行うためのフォームを提供します. 文字列置換の対象は、ページの内容とページのタイトルの両方です.
 * は、管理者がウィキ全体の文字列置換を行うためのフォームを提供します. 文字列置換の対象は、ページの内容とページのタイトルの両方です.

手違いにより、Nuke 拡張機能は MediaWiki 1.31.0 の tarball には含まれていません. この拡張機能を使用したい場合は、個別にダウンロードしてください. これは次回の MediaWiki のリリースで修正される予定です.

Timeless スキン
Timeless は MediaWiki の新しいレスポンシブスキンで、同梱されるようになりました.

CologneBlue および Modern
CologneBlue および Modern スキンは、現在も MediaWiki に対応していますが、同梱されなくなりました. それらのスキンを更新またはインストールする場合は、個別にダウンロードしてください.

HTML 5 構文解析アルゴリズムに置換された Tidy

 * 詳細はを参照してください

正しくないウィキテキストを現代的で標準に準拠した方法で整形するため、HTML 4 ベースの Tidy ライブラリが PHP のみで書かれた HTML 5 構文解析器 RemexHtml に置き換えられています. 行われなくなる tidy の整形にコンテンツが依存している場合は、それらを修正する必要があります.

Parsoid とともに Linter 拡張機能 を使用することで、RemexHtml 構文解析器を利用したレンダリングの際に差異が生じる問題が発生するページを割り出すことができます. ParserMigration 拡張機能は、エディタに tidy および RemexHtml を利用したレンダリングの比較を横に並べて表示します.

ウィキ間利用者名
MediaWiki は、版やログエントリ等において " " のような形式の「ウィキ間」利用者名をサポートするようになりました. これにより、外部のウィキ（例えば Wikibase によって生成されたもの）からのページの取り込みやイベントの正確な記録が可能となり、 現在存在する、あるいは将来作成される可能性があるローカルアカウントによって混乱することがなくなります.


 * ページの取り込みは、不明な（オプションで既知のものも）利用者名を " " のような形式で記録するようになります.
 * （履歴ページ、ログページ等で使用されています）は、 というウィキテキストのように、" Example" という形で利用者名を表示します.

さらなる UI の標準化

 * MediaWiki プロジェクトを横断したダイアログボックスの標準化の最初のパスとして、Html クラスが messageBox、successBox、errorBox および warningBox を生成するためのヘルパーメソッドを提供するようになりました.

その他の機能の変更

 * すべての利用者に対して、90編集/分という既定の編集速度制限を追加します. これは の設定によって変更することができます.
 * は  アクションにのみ影響します.
 * と名付けられた利用者サブページは、 や   ページと同様の方法で保護されるようになりました. そのため、そのページに環境設定オプションを安全に配置することができます.
 * ファイルページの情報ページは、基本情報表においてファイルの base-16 SHA1 ハッシュ値を表示するようになりました.
 * pingback 機能は、1月に1回、活動中のウィキを割り出すための heartbeat ping を送信します.
 * 存在しないページにリンクするタブ（未作成の議論ページへのタブ等）は、色だけでなく、状態を示すツールチップを持つようになります.

1.31 において更新された言語
MediaWiki は 350 以上の言語をサポートしています. 多くのローカライゼーションは定期的に更新されています. 以下では、Phabricator のレポートによる言語への変更、新しい言語および削除された言語のみが記載されています.


 * ミランダ語（mwl）は、文法的性が付与された /  をサポートするようになりました.
 * 新規言語サポート： ニュンガル語（nys）.
 * 新規言語サポート：シベリアタタール語［cебертатар］（sty）.
 * 新規言語サポート：Guianan Creole（gcr）.
 * 新規言語サポート：クムク語［къумукъ］（kum）.
 * 新規言語サポート：Spanish formal address（es-formal）.
 * 新規言語サポート：Hungarian formal address（hu-formal）.
 * 新規言語サポート：ゴロンタロ語（gor）.

PHP7 または HHVM が必要になりました
MediaWiki 1.31 は PHP 7.0.0 以降を必要とします. HHVM 3.18.5 以降もサポートしますが、長期間のサポートのため、一般に PHP 7.0.0 以降の使用が推奨されます.

データベースの変更
1.31 には 1.30 からいくつかのデータベース変更があり、スキーマ更新をしなければ動作しません.

Revision テーブル
リビジョンテーブルのようないくつかのとても大きなテーブルへの変更のため、スキーマ更新には非常に長い時間（中規模サイトで数分、大規模サイトで数時間）がかかる可能性があることに注意してください. 更新前には常にデータベースをバックアップすることを忘れないでください！

Archive テーブル
MySQL、SQLite、あるいは MSSQL を利用していて、スキーマ変更の適用に update.php を使用しておらず、かつ手動での  の実行と   の適用のためのダウンタイムを確保できない場合は、MediaWiki 1.31 への更新の前に、  テーブルの   および   カラムに既定値を適用するか、それらのカラムが NULL を許可するように設定する必要があります. は、MySQL でこれを行う方法を示します.

Actor テーブル
ログイン済みあるいはIPの「アクター」の識別が、新しい  テーブルに移されています. Revision や logging のようなテーブルの行は、各行に利用者 ID と利用者名/IP を格納するのではなく、アクター ID を参照します.


 * これは現在 によって制御されています. ほとんどのウィキでは、すべての必要な拡張機能が更新され次第、これを   に設定し、  を実行することができます.
 * データベース上の記録されたアクションの行にアクセスするほとんどのコードは、SQL クエリの構築に必要な情報を取得するために関連する  メソッドを使用するべきです. 移行期間中は、アクター関連フィールドへのアクセスに必要となる機能フラグが付加された情報を取得するために、  クラスを使用することもできます.

環境設定の変更
CentralAuthグローバルブロックを含むウィキは、 を実行してください.
 * および は非推奨となり、将来のバージョンでは削除される予定です. API は現在安定しており、安全で、必須であると考えられています.
 * 現在は既定値となっているため、 は削除されました. これは移行期間中の一時的な変数と説明されており、1.29 より廃止予定となっていました.
 * が SVG 画像をサポートするように更新されています. これは を使用します.  では PNG のようなフォールバック画像を指定することができます.
 * 利用者にページを巡回済みにする権利がない場合、 は〈 '〉を無視しないで処理するようになりました.
 * リビジョンをインポートあるいは
 * 1.27 より非推奨となっていた、構成設定 および が削除されました.
 * は最新版のReferrer Policy設定を採用していないブラウザでも、ファールバックをサポートするように変更されました.
 * が既定で  に設定されるようになりました. これは人間が読めるセクション ID への移行の最初の段階で、後に既定のモードとなる ' ' へと変わるでしょう.
 * は、現在 APC(u) または WinCache のみをサポートします. アップストリームが活発でないため、XCache のサポートは削除されました. また、PHP 7へ移行する計画もありません.
 * 関連する構成オプション を含む、古い  機能は削除されています.
 * に対する〈 〉の値のサポートはパフォーマンス上の理由から終了し、その設定のままインストールすると、値を〈 〉に設定した状態で実行されます.
 * MediaWikiでは利用者の入力を整えるため、これまで既定で無効だった が有効になりました. HTML整形を完全に無効にするには、を に設定します. すでに廃止された昔のTidyを外部バイナリとして使うには、を に、かつを に設定します.
 * の既定値が  ではなく  になりました.
 * は削除され、無視されるようになります.
 * 1.25 より非推奨となり無視されるようになっていた が削除されました. 詳細は 1.25 のリリースノートを参照してください.
 * はすでに廃止された連動するAJAXフレームワーク同様、非推奨になりました. いくつかの拡張機能ではこれを誤用してAJAX機能を有効にするかどうか判断しており、問題をさらに複雑にしていたからです.
 * は非推奨となり、将来のバージョンから削除されます. これは導入時より実験的とマークされてきた拡張機能でした.
 * の対象が全種のデータベースに拡大しました. 旧版のMediaWikiではこれをインストール段階で〈mediawiki〉に設定し、データベースがPostgreSQLあるいはMSSQL以外の場合、更新時にエラーの原因になっていました. その場合はこの拡張機能をLocalSettings.phpの設定から削除してください.

MediaWiki 1.31.0-rc.2 からの変更点
3.0（PHP 7.0に付属）のサポートを開始しました.
 * 通常の自動読み込み機能と同じ段階でPSR-4名前空間を初期化.
 * インストーラーのMySQL binary/utf-8 文字エンコーディングの選択肢を非表示にする.
 * インストーラーがを有効にできなくする機能.
 * PHP管理にmemcached
 * PHP 7.1+で が稼働
 * フックでHHVMの 参照外し演算子の例外処理を修正
 * ファイルの をゼロに設定可能にしました.
 * / パーサ機能で  を認証します.

MediaWiki 1.31.0-rc0 からの変更点

 * 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.

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.

1.31 における外部ライブラリの変更

 * 、  および   は   から   へ移されました. これらのパッケージは PEAR 自身ではなく composer によってインストールされるようになりました.

更新された外部ライブラリ

 * を v0.9.14 から v1.8 に更新しました
 * を 1.1.4 から 1.3.0 に更新しました（開発時依存）.
 * を 2.1.0 から 3.1.3 に更新しました（開発時依存）.
 * を 1.1.0 から 1.2.0 に更新しました.
 * を 2.0.0 から 2.1.1 に更新しました.
 * を 1.1.0 から 1.2.0 に更新しました.
 * を 2.2.0 から 2.3.0 に更新しました.
 * を 1.1.0 から 1.2.0 に更新しました.
 * を 1.0.4 から 1.0.6 に更新しました.
 * を 1.0.2 から 1.0.3 に更新しました.
 * を 1.0.1 から 1.0.2 に更新しました.

新しい外部ライブラリ

 * 1.0.0 を追加しました

削除または置換された外部ライブラリ

 * 非推奨のモジュール' 'を削除.
 * 非推奨のモジュール' 'を削除. CSS プロパティを代用してください.
 * 非推奨のモジュール' 'を削除.
 * 非推奨のモジュール' 'を削除. ' 'モジュールを代用してください.


 * を廃止、 に置換しました.

1.31 におけるバグ修正

 * ヘッダID内の空白スペースでアンカーが無効になる.
 * CSSMin では' 'シンタックスで挟んだ引用URLの冒頭に、空白スペースを書けるようになりました.
 * : カテゴリと言語間リンクでホワイトスペースが生じた場合、予想外の箇所に空行を置く代わりに、ホワイトスペースを削除します.
 * Windows サーバ上でPHP7.1+によるUTF-8 名称でのアップロードが可能になりました.
 * PHP 7.1+で が使用可能になりました.

1.31における操作APIの変更

 * における に対する' '値を削除. 出力になんら影響を与えず、nameはいずれにしても必ず返されたため.
 * に対するパラメータの' 'および' 'を削除. 非推奨で、2010年に1.17以降は偶発的に機能しなくなりました. ' 'を代用してください.

1.31における操作APIの内部的な変更

 * は 1.25以降非推奨で、削除されました.
 * は 1.25以降非推奨で、削除されました.
 * は 1.25以降非推奨で、削除されました.

1.31 における後方互換性のない変更

 * は 1.27以降非推奨で、削除されました.
 * クラスコンストラクタに パラメータが必須になりました. コンテキストなしでインスタンス化することは、1.18で非推奨になりました.
 * JavaScript singletonは 1.30以降非推奨で、削除されました.
 * と ならびに関連する コンスタンスは 1.29以降非推奨で、削除されました.
 * と 、 と 方式は 1.24以降非推奨で、削除されました.
 * および は削除されました. を代用してください.
 * 非推奨の コンスタントを削除しました.  を代用してください.
 * 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.

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.

1.31 におけるその他の変更

 * Internet Explorer 10 に対するブラウザサポートは、グレード A からグレード C に下げられました.
 * Opera 12 以前に対するブラウザサポートは完全に中止されました. Opera 15 以上はグレード A が続いています.
 * Multi-content-revision capability was introduced into the storage layer. See .
 * " " CSS クラスは、ウィキテキスト中の角括弧で囲まれていない URL にのみ適用されるようになりました. 角括弧を使用して書かれたリンクは、" " ではなく " " を得るようになります.
 * : ウィキテキスト見出し、ウィキテキストリスト項目、ウィキテキスト表キャプション、ウィキテキスト表見出し、ウィキテキスト表セルから空白が取り除かれます. HTML 見出し、HTML リスト項目、HTML 表キャプション、HTML 表見出し、HTML 表セルはこの除去動作を行いません.