Net_GeoIP (Previous) (Next) Net_GeoIP::lookupCountryName()

View this page in Last updated: Sun, 31 Aug 2008
English | French | German | Hungarian | Japanese | Polish | Spanish | Plain HTML

Net_GeoIP::getInstance()

Net_GeoIP::getInstance() --  インスタンスを取得し、データベースの再読み込みを防ぐメソッド

説明

このメソッドは、いわゆるシングルトンパターンを実装したものです。 Net_GeoIP のインスタンスを作成するには、 このメソッドを使用することを推奨します。

複数インスタンス

アプリケーション内で複数のデータベースを使用したい場合は、 それぞれのデータベースに対して Net_GeoIP のインスタンスを個別に作成する必要があります。 シングルトンメソッド getInstance() を使用すると、 個々のデータベースに対応するインスタンスは常にひとつであることが保証されます。 これにより、データベース設定のオーバーヘッドを抑えることができます。

パラメータ

  • string $filename - データベースファイルの名前 (そこまでのパスも含む)。

  • int $flags - クラスの振る舞いを制御するフラグ。以下のクラス定数のいずれかです。

    • Net_GeoIp::SHARED_MEMORY - 複数の PHP インスタンスでデータベースを共有するために、 SHMOP を使用します。

      注意 同時に複数の Net_GeoIP インスタンスが共有メモリを使用することはできません。

      Net_GeoIP::SHARED_MEMORY (shmop) を使用する場合は、単一のインスタンス (つまりひとつのデータベース) に対してのみしか使用できません。 それ以降に SHARED_MEMORY を使用したインスタンスを作成しようとすると、 すでに作成されているインスタンスと同じ共有メモリブロックを読み込んでしまい、 問題が発生します。というのも、 そこから読み込んだデータベースは期待しているものとは異なるからです。

      Net_GeoIP::SHARED_MEMORY を使用した 2 つめ以降インスタンスの作成をとめるための エラーを通知する簡単な方法はありません。 また、2 つめ以降のインスタンスが共有メモリブロックを上書きするようにすることも (事実上) 不可能です。

      簡単に言うと、複数データベースの環境で Net_GeoIP::SHARED_MEMORY を使う際には注意しましょうということです。

    • Net_GeoIp::MEMORY_CACHE - 現在のスクリプト内で使用するために、 データベースの中身をすべてメモリに格納します。

      これは、スクリプト内で何度もデータベースにアクセスする際に有用です。

    • Net_GeoIp::STANDARD - 標準の形式で、キャッシュを行いません。 このパラメータを省略した場合のデフォルト値でもあります。

Net_GeoIP (Previous) (Next) Net_GeoIP::lookupCountryName()

Download Documentation Last updated: Sun, 31 Aug 2008
Do you think that something on this page is wrong? Please file a bug report or add a note.
User Notes:
There are no user contributed notes for this page.