HTTPメッセージ

Messageクラスは、メッセージ本体、プロトコルバージョン、ヘッダーの操作ユーティリティ、およびコンテンツネゴシエーションを処理するためのメソッドを含む、リクエストとレスポンスの両方に共通のHTTPメッセージの部分へのインターフェースを提供します。

このクラスは、RequestクラスResponseクラスの両方が拡張する親クラスです。

クラスリファレンス

class CodeIgniter\HTTP\Message
getBody()
戻り値:

現在のメッセージ本文

戻り値の型:

mixed

設定されている場合は現在のメッセージ本文を返します。本文が存在しない場合はnullを返します。

<?php

echo $message->getBody();
setBody($data)
パラメータ:
  • $data (mixed) – メッセージの本文。

戻り値:

メソッドをチェーンできるようにするMessage|Responseインスタンス。

戻り値の型:

CodeIgniter\HTTP\Message|CodeIgniter\HTTP\Response

現在のリクエストの本文を設定します。

appendBody($data)
パラメータ:
  • $data (mixed) – メッセージの本文。

戻り値:

メソッドをチェーンできるようにするMessage|Responseインスタンス。

戻り値の型:

CodeIgniter\HTTP\Message|CodeIgniter\HTTP\Response

現在のリクエストの本文にデータを追加します。

populateHeaders()
戻り値:

void

SERVERデータにあるヘッダーをスキャンして解析し、後でアクセスできるように保存します。これは、IncomingRequestクラスが現在のリクエストのヘッダーを利用できるようにするために使用されます。

ヘッダーは、HTTP_で始まるすべてのSERVERデータ(HTTP_HOSTなど)です。各メッセージは、標準の大文字とアンダースコア形式から、ucwordsとダッシュ形式に変換されます。先頭のHTTP_は文字列から削除されます。したがって、HTTP_ACCEPT_LANGUAGEAccept-Languageになります。

headers()
戻り値:

見つかったすべてのヘッダーの配列。

戻り値の型:

array

見つかった、または以前に設定されたすべてのヘッダーの配列を返します。

header($name)
パラメータ:
  • $name (string) – 値を取得するヘッダーの名前。

戻り値:

単一のヘッダーオブジェクトを返します。同じ名前の複数のヘッダーが存在する場合は、ヘッダーオブジェクトの配列を返します。

戻り値の型:

CodeIgniter\HTTP\Header|array

単一のメッセージヘッダーの現在の値を取得できます。$nameは大文字と小文字を区別しないヘッダー名です。ヘッダーは内部で上記のように変換されますが、任意の大文字/小文字タイプでヘッダーにアクセスできます

<?php

// These are all the same:
$message->header('HOST');
$message->header('Host');
$message->header('host');

ヘッダーに複数の値がある場合、getValue()は値の配列として返されます。getValueLine()メソッドを使用して、値を文字列として取得できます

<?php

echo $message->header('Accept-Language');
/*
 * Outputs something like:
 * 'Accept-Language: en,en-US'
 */

echo $message->header('Accept-Language')->getValue();
/*
 * Outputs something like:
 * [
 *     'en',
 *     'en-US',
 * ]
 */

echo $message->header('Accept-Language')->getValueLine();
/*
 * Outputs something like:
 * en,en-US'
 */

2番目のパラメータとしてフィルター値を渡すことで、ヘッダーをフィルター処理できます

<?php

$message->header('Document-URI', FILTER_SANITIZE_URL);
hasHeader($name)
パラメータ:
  • $name (string) – 存在するかどうかを確認するヘッダーの名前。

戻り値:

存在する場合はtrue、それ以外の場合はfalseを返します。

戻り値の型:

bool

getHeaderLine($name)
パラメータ:
  • $name (string) – 取得するヘッダーの名前。

戻り値:

ヘッダー値を表す文字列。

戻り値の型:

string

ヘッダーの値を文字列として返します。このメソッドを使用すると、ヘッダーに複数の値がある場合に、ヘッダー値の文字列表現を簡単に取得できます。値は適切に結合されます

<?php

echo $message->getHeaderLine('Accept-Language');
/*
 * Outputs:
 * 'en,en-US'
 */
setHeader($name, $value)
パラメータ:
  • $name (string) – 値を設定するヘッダーの名前。

  • $value (mixed) – ヘッダーに設定する値。

戻り値:

現在のMessage|Responseインスタンス

戻り値の型:

CodeIgniter\HTTP\Message|CodeIgniter\HTTP\Response

単一のヘッダーの値を設定します。$nameは大文字と小文字を区別しないヘッダーの名前です。ヘッダーがコレクションにまだ存在しない場合は、作成されます。$valueは、文字列または文字列の配列のいずれかになります

<?php

$message->setHeader('Host', 'codeigniter.com');
removeHeader($name)
パラメータ:
  • $name (string) – 削除するヘッダーの名前。

戻り値:

現在のメッセージインスタンス

戻り値の型:

CodeIgniter\HTTP\Message

メッセージからヘッダーを削除します。$name は、ヘッダーの大文字小文字を区別しない名前です。

<?php

$message->removeHeader('Host');
appendHeader($name, $value)
パラメータ:
  • $name (string) – 変更するヘッダーの名前。

  • $value (string) – ヘッダーに追加する値。

戻り値:

現在のメッセージインスタンス

戻り値の型:

CodeIgniter\HTTP\Message

既存のヘッダーに値を追加します。ヘッダーは、単一の文字列ではなく、値の配列である必要があります。文字列の場合、LogicException がスローされます。

<?php

$message->appendHeader('Accept-Language', 'en-US; q=0.8');
prependHeader($name, $value)
パラメータ:
  • $name (string) – 変更するヘッダーの名前。

  • $value (string) – ヘッダーの先頭に追加する値。

戻り値:

現在のメッセージインスタンス

戻り値の型:

CodeIgniter\HTTP\Message

既存のヘッダーの先頭に値を追加します。ヘッダーは、単一の文字列ではなく、値の配列である必要があります。文字列の場合、LogicException がスローされます。

<?php

$message->prependHeader('Accept-Language', 'en,');
getProtocolVersion()
戻り値:

現在のHTTPプロトコルバージョン

戻り値の型:

string

メッセージの現在のHTTPプロトコルを返します。何も設定されていない場合は、1.1 を返します。

setProtocolVersion($version)
パラメータ:
  • $version (string) – HTTPプロトコルバージョン

戻り値:

現在のメッセージインスタンス

戻り値の型:

CodeIgniter\HTTP\Message

このメッセージが使用するHTTPプロトコルバージョンを設定します。有効な値は 1.0, 1.1, 2.0 および 3.0 です。

<?php

$message->setProtocolVersion('1.1');