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',
]

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\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:[email protected],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

項目一覧