Manual:Title.php/ja

From MediaWiki.org
Jump to: navigation, search
MediaWiki File: Title.php
Location: /includes/
Source code: HEAD

1.18.11.17.21.6.12

Classes: Title


MediaWiki ソフトウェアの Title クラスは 記事タイトル を表し、様々な目的で使用されます。 例えば:

  • 人間に読めるテキスト形式の記事タイトルとして
  • 記事にアクセスするための URL 中で
  • 記事への Wikitext リンク
  • 記事データベースへのキー

このクラスでは、これらのいずれかの書式のインスタンスが生成されます。 インスタンスが生成されると、タイトルを属性に応じて他の書式またはクエリとして取得できます。 Title は、不変 "値" クラスとして設計されているため、ミューテータ関数は存在しません。

Title のインスタンスを生成するには、以下のいずれかの静的ファクトリメソッドを呼び出します:

  • Title::newFromURL()
  • Title::newFromDBKey()
  • Title::newFromText()

インスタンスが生成されると、他の非静的アクセサメソッドが使用可能になります。 例えば、getText()getDBKey()getNamespace() 等です。

Contents

[edit] タイトルの構成

タイトルは、省略可能な インターウィキ 接頭子 (例えば、mediawiki.org ページを指す "m:" や、ウィキペディア 記事を指す "w:")、省略可能な名前空間 (例えば "Manual:")、記事名、の順序で構成されます。

接頭子: 名前空間: 記事名
省略可 省略可 省略不可

[edit] インターウィキ接頭子と名前空間

インターウィキ接頭子と名前空間は、どちらも同じ記述規則に従います:

  • 先頭は文字であること
  • 末尾はコロンであること
  • 数字、文字、空白、アンダースコアのみ使用可能
  • 空白とアンダースコアは区別されない
  • 大小文字は区別されない

インターウィキ接頭子および名前空間は、既定値もしくは設定値として MediaWiki システムに対して指定されたもののみ認識されます。

例: 本 Wiki では、"w:Name" はウィキペディアの記事 "Name" へのリンクとなります。 これは、"w" がインターウィキ接頭子として認識されるためです。 タイトル "talk:Name" は、現在の Wiki の "talk" 名前空間にある記事 "Name" へのリンクとなります。 これは、"talk" が名前空間として認識されるためです。 インターウィキ接頭子と名前空間の両方を記述することも可能で、その場合はインターウィキ接頭子を先に記述します (例: "w:talk:name")。

タイトルの先頭文字がコロンで始まる場合は、接頭子はスキャンされず、コロンもタイトルが処理される前に取り除かれます。 この規則により、名前にコロンを含む記事を記述することが可能になります。 "大腸菌 O127:H7" や "2001: A Space Odyssey" 等のタイトルは、そのままでも有効です。これは、"大腸菌 O157" および "2001" は、有効なインターウィキ接頭子または名前空間ではないためです。

[edit] 記事名

記事名では、空白とアンダースコアは同じものとして扱われ、それぞれ文脈に応じて適切に変換されます (URL や データベースキーではアンダースコア、平文では空白)。 全ての場所で 0x80..0xFF 領域の "拡張" 文字を、有効な文字として使用できます。これらの文字は URL ではエンコードされます。 テキストやデータベースキーで使用される場合は、拡張文字は URL エンコード されません。 その他の文字として、ASCII 文字、数字、ハイフン、カンマ、ピリオド、アポストロフィ、括弧、およびコロンが使用できます。左記以外の ASCII 記号は使用できず、もし使用した場合は取り除かれます (これらの文字は、ブラウザが URL の解釈に失敗する原因となる恐れがあります)。

[edit] 正規形

オブジェクトの戻り値では、常にタイトルの 正規形 が返されます。 この書式では、名前空間およびタイトルの先頭文字 (先頭文字だけが) 大文字になります; 名前空間の後の文字は小文字になりますが、タイトルでは先頭以外の文字は大小文字はそのまま保存されます。

テキスト書式では空白が使用され、URL および DBKey 書式ではアンダースコアが使用されます。 インターウィキ接頭子は全て小文字になります。 名前空間が単独で返される場合はアンダースコアを使用します; テキストタイトルに付随する名前空間でのみ、空白が使用されます。

getArticleID() については若干の説明が必要です: "内部" 記事に対しては、getArticleID() は記事が存在する場合は "ページ ID" フィールドを、存在しなければ 0 を返します。 外部記事に対しては常に 0 を返します。 リクエスト中に生成された、タイトルの全てのインスタンスの ID は、全てキャッシュされます。 従って、多数の内部リンクを含む Wikitext をレンダリングしながら、ページ ID を素早く検索することが可能です。

[edit] 使用例

指定したページが既に存在するかどうかを調べる:

$test = Title::newFromText('調べたいタイトルをここに記述');
if (!$test->exists()) echo "この名前のページは存在しません。";

ページが存在しない場合に、このコードは新規作成しない点に注意して下さい。 この場合については Manual:Article.php を参照してください。

[edit] 関連情報


言語: English  • 日本語
Personal tools
Namespaces
Variants
Actions
Site
Support
Download
Development
Communication
Print/export
Toolbox