REQUEST_TIME 定数

Drupal 7

REQUEST_TIME という定数が Drupal のソースコードに結構みつかる。これが何をやっているのか知らなかったので調べてみた。

定義しているのは bootstrap.inc である。$_SERVER['REQUEST_TIME'] をそのまま設定している。

$_SERVER['REQUEST_TIME'] だが、 php のマニュアル には以下のように説明してある

'REQUEST_TIME'
リクエストの開始時のタイムスタンプ。PHP 5.1.0 以降で利用可能。

サーバがリクエストを受け取った時間のようだ。 これを使うことにより、 time() 関数を使わずに現在時間 ( UNIX 時間 ) を取得することが出来る。

たとえば、node モジュールの node.module ファイルの node_save() 関数をみてみると:

    // Set the timestamp fields.
    if (empty($node->created)) {
      $node->created = REQUEST_TIME;
    }
    // The changed timestamp is always updated for bookkeeping purposes,
    // for example: revisions, searching, etc.
    $node->changed = REQUEST_TIME;

    $node->timestamp = REQUEST_TIME;

このようにして REQUEST_TIME 定数を用いて、node の作成時間(更新時は設定されているので変更しない)、node の更新時間等を設定している。

頻繁に現在時間を取得する場合は、time()関数を何度も呼び出すよりも定数に設定している方が速いのだろう。もしかしたら、作成時間と更新時間に同じ日時を設定したいという事があるのかもしれないが。

私もこれからは REQUEST_TIME 定数を利用するようにしよう。

このエントリーをはてなブックマークに追加
Pocket