Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ / /
PHP ライブラリ マニュアル
/ /

MongoDB\Client::__construct()

MongoDB\Client::__construct()

新しい Clientインスタンスを構築します。

function __construct(
?string $uri = null,
array $uriOptions = [],
array $driverOptions = []
)
$uri : string

MongoDB接続string 。 詳細については、MongoDB マニュアルの接続文字列 を参照してください。

指定しない場合、デフォルトは"mongodb://127.0.0.1:27017"になります。

URI コンポーネント内の特殊文字は、 RFC3986 に従ってエンコードする必要があります。これは特にユーザー名とパスワードに関連し、@ 、 、: %などの特殊文字が含まれることが多いです。 Unix ドメイン ソケット経由で接続する場合、ソケット パスにスラッシュなどの特殊文字が含まれる場合があるため、エンコードする必要があります。 rawr値()関数は、URI の構成要素をエンコードするために使用できます。

$uriOptions : 配列

認証資格情報やクエリ文字列パラメーターなどの追加の URI オプションを指定します。$uriOptions で指定されたオプションは、$uri string に存在する類似のオプションよりも優先され、RFC3986 に準拠してエンコードされる必要はありません。

サポートされているオプションのリストについては、 MongoDB$Driver\Manager::__construct() 拡張ドキュメントを参照してください。

$driverOptions : 配列

PHPドライバーに固有のオプションを指定します。拡張機能 によってサポートされているドライバー オプションに加えて、ライブラリは作成するカーソルに適用するデフォルトの 型マップ の指定をサポートしています。

名前
タイプ
説明

autoEncryption

配列

ドライバーでクライアント側のフィールドレベル暗号化を構成するオプション。サポートされている暗号化オプションのリストについては、拡張機能のドキュメントを参照してください。

MongoDB\ClientオプションにkeyVaultClient が指定されている場合は、 拡張機能のMongoDB\Driver\Manager にラップされません。

バージョン 1.6 の新機能.

ドライバー

配列

サーバー ハンドシェイクに渡す追加のドライバー メタデータ。 これは、 nameversionplatform string フィールドを含む配列です。 例:

[
'name' => 'my-driver',
'version' => '1.2.3-dev',
'platform' => 'some-platform',
]

この機能は、主にカスタム ドライバーと ODM 用に設計されており、診断目的でサーバーに自分自身を識別する必要がある可能性があります。 アプリケーションで自分自身を識別する場合は、このオプションの代わりにappName URI オプションを使用する必要があります。

バージョン 1.7 の新機能

ServerApi

クライアントで API バージョンを宣言するために使用されます。 詳細については、サーバー マニュアルのStable APIページを参照してください。

バージョン 1.9 の新機能

typeMap

配列

カーソルに適用するデフォルトのタイプ マップ。BSON ドキュメントをPHP値に変換する方法を決定します。ライブラリは、デフォルトで次の型マップを使用します。

[
'array' => 'MongoDB\Model\BSONArray',
'document' => 'MongoDB\Model\BSONDocument',
'root' => 'MongoDB\Model\BSONDocument',
]

builderEncoder

MongoDB\Codec\Encoder

クエリ ビルダと集計ビルダに使用するエンコード。設定されていない場合、このオプションはデフォルトで MongoDB\Builder\BuilderEncoderクラスの新しいインスタンスになります。

バージョン1.21の新機能

allow_invalid_hostname

ブール値

trueの場合はホスト名の検証を無効にします。 デフォルトはfalseです。

無効なホスト名を許可すると、ドライバーが中間者攻撃(man-in-the-middle attack)に遭遇する可能性があります。

バージョン 1.6 から非推奨: このオプションは非推奨になりました。 代わりに、 tlsAllowInvalidHostnames URI オプションを使用してください。

ca_dir

string

正しくハッシュされた証明書ディレクトリへのパス。 デフォルトでは、システム証明書ストアが使用されます。

指定されていない場合は、非推奨のcapath SSL コンテキスト オプションに戻ります。

ca_file

string

認証局ファイルへのパス。 デフォルトでは、システム証明書ストアが使用されます。

指定されていない場合は、非推奨のcafile SSL コンテキスト オプションに戻ります。

バージョン 1.6 から非推奨: このオプションは非推奨になりました。 代わりに、 tlsCAFile URI オプションを使用してください。

CRL_file

string

証明書失効リスト ファイルへのパス。

pem_file

string

クライアント認証に使用する PEM でエンコードされた証明書へのパス。

指定されていない場合は、非推奨のlocal_cert SSL コンテキスト オプションに戻ります。

バージョン 1.6 から非推奨: このオプションは非推奨になりました。 代わりに、 tlsCertificateKeyFile URI オプションを使用してください。

pem_pwd

string

PEM でエンコードされた証明書のパスフレーズ(該当する場合)。

指定されていない場合は、非推奨のpassphrase SSL コンテキスト オプションに戻ります。

バージョン 1.6 から非推奨: このオプションは非推奨になりました。 代わりに、 tlsCertificateKeyFilePassword URI オプションを使用してください。

weekly_cert_validation

ブール値

証明書の検証trueを無効にします。 デフォルトはfalseです。

指定されていない場合は、非推奨のallow_self_signed SSL コンテキスト オプションに戻ります。

バージョン 1.6 から非推奨: このオプションは非推奨になりました。 代わりに、 tlsAllowInvalidCertificates URI オプションを使用してください。

context

resource

他のドライバー オプション(指定)のフォールバックとして使用する SSL コンテキスト オプション。ドライバーはデフォルトのストリーム コンテキストを参照しないことに注意してください。

このオプションは下位互換性のためにサポートされていますが、非推奨と考慮する必要があります。

MongoDB\Exception\InvalidArgumentException は、パラメータまたはオプションの解析に関連するエラーの場合は です。

拡張レベルでのパラメータまたはオプションの解析に関連するエラーの場合は、 MongoDB\Driver\Exception\InvalidArメントException 。

拡張レベルのその他のエラー(例: 接続エラー)の場合は、 MongoDB\Driver\Exception\RuntimeException 。

MongoDB\Driver\Manager が内部的に構築されます。サーバー検出とモニタリングの 仕様に従って、 MongoDB$Driver\Manager::__construct() は I/O を実行しません。接続は、最初の操作が実行されたときに、オンデマンドで初期化されます。

$uri 値を指定しないと、ドライバーにより、127.0.0.1 上のスタンドアロンの mongod にポート 27017 を通じて接続が行われます。別のサーバーに接続するには、Clientインスタンスを作成するときに、対応する接続文字列を最初のパラメータとして渡します。

<?php
$client = new MongoDB\Client('mongodb://mongodb-deployment:27017');

次の例は、カスタム読み取り設定を使用してレプリカ セットに接続する方法を示しています。

<?php
$client = new MongoDB\Client(
'mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet',
[
'readPreference' => 'secondaryPreferred',
]
);

次の例は、MongoDB Atlas で使用される SSL と認証を使用して MongoDB レプリカ セットに接続する方法を示しています。

<?php
$client = new MongoDB\Client(
'mongodb://myUsername:myPassword@rs1.example.com,rs2.example.com/?ssl=true&replicaSet=myReplicaSet&authSource=admin'
);

あるいは、認証資格情報と URI パラメーターをコンストラクターの $uriOptions パラメーターで指定することもできます。

<?php
$client = new MongoDB\Client(
'mongodb://rs1.example.com,rs2.example.com/'
[
'username' => 'myUsername',
'password' => 'myPassword',
'ssl' => true,
'replicaSet' => 'myReplicaSet',
'authSource' => 'admin',
],
);

ドライバーは、追加の SSL オプションをサポートしており、コンストラクターの $driverOptions パラメーターで指定できます。これらのオプションについては、MongoDB\Driver\Manager::__construct() ドキュメントで説明されています。

デフォルトでは、MongoDB PHP ライブラリは BSON ドキュメントと配列をそれぞれMongoDB\Model\BSONDocument } オブジェクトとMongoDB\Model\BSONArrayオブジェクトとして逆シリアル化します。 次の例では、レガシーのmongo拡張機能と同様に、ライブラリですべてが PHP 配列として逆直列化されている方法を示しています。

<?php
$client = new MongoDB\Client(
null,
[],
[
'typeMap' => [
'root' => 'array',
'document' => 'array',
'array' => 'array',
],
]
);

戻る

MongoDB\Client

項目一覧