MongoDB\Client::__construct()
定義
MongoDB\Client::__construct()
新しい
Client
インスタンスを構築します。function __construct( ?string $uri = null, array $uriOptions = [], array $driverOptions = [] )
パラメーター
$uri
: stringMongoDB接続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 の新機能.
ドライバー
配列
サーバー ハンドシェイクに渡す追加のドライバー メタデータ。 これは、
name
、version
、platform
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
インスタンスを作成するときに、対応する接続文字列を最初のパラメータとして渡します。
$client = new MongoDB\Client('mongodb://mongodb-deployment:27017');
レプリカセットへの接続
次の例は、カスタム読み取り設定を使用してレプリカ セットに接続する方法を示しています。
$client = new MongoDB\Client( 'mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet', [ 'readPreference' => 'secondaryPreferred', ] );
SSL と認証による接続
次の例は、MongoDB Atlas で使用される SSL と認証を使用して MongoDB レプリカ セットに接続する方法を示しています。
$client = new MongoDB\Client( 'mongodb://myUsername:myPassword@rs1.example.com,rs2.example.com/?ssl=true&replicaSet=myReplicaSet&authSource=admin' );
あるいは、認証資格情報と URI パラメーターをコンストラクターの $uriOptions
パラメーターで指定することもできます。
$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 配列として逆直列化されている方法を示しています。
$client = new MongoDB\Client( null, [], [ 'typeMap' => [ 'root' => 'array', 'document' => 'array', 'array' => 'array', ], ] );
その他の参照
マニュアルの 接続 URI 形式string MongoDBを参照してください。
サーバーの検出と監視 仕様