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 : 配列

認証資格情報やクエリstringパラメーターなどの追加の 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',
]
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\InvalidArgmentException 拡張レベルでのパラメータまたはオプションの解析に関連するエラーの場合。

MongoDB\Driver\Exception\RuntimeException 拡張レベルのその他のエラー(例:)。

A 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