Docs Menu
Docs Home
/ / /
PHP 라이브러리 매뉴얼
/ /

MongoDB\Client::__construct()

이 페이지의 내용

  • 정의
  • 매개변수
  • 오류/예외
  • 행동
  • 예시
  • 다음도 참조하세요.
MongoDB\Client::__construct()

Client 인스턴스 생성합니다.

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

MongoDB 연결 string 입니다. 자세한 내용은 MongoDB 매뉴얼의 연결 문자열 을 참조하세요.

지정하지 않으면 기본값은 "mongodb://127.0.0.1:27017" 입니다.

URI 구성 요소의 모든 특수 문자는 RFC 에 따라 3986 인코딩해야 합니다. . 이는 특히 사용자 이름 및 비밀번호와 관련이 있으며, 여기에는 @, : 또는 % 와 같은 특수 문자가 포함될 수 있는 경우가 많습니다. Unix 도메인 소켓을 통해 연결할 때 소켓 경로에 슬래시와 같은 특수 문자가 포함될 수 있으므로 인코딩해야 합니다. rawurlencode() 함수를 사용하여 URI의 구성 부분을 인코딩할 수 있습니다.

$uriOptions : 배열

인증 자격 증명 또는 쿼리 string 매개변수와 같은 추가 URI 옵션을 지정합니다. 에 지정된 옵션은 $uriOptions 에 있는 유사한 옵션보다 우선하며 $uri string RFC 3986 에 따라 인코딩할 필요가 없습니다. .

MongoDB\Driver\Manager::__construct() 지원되는 옵션 목록은 확장 프로그램 문서를 참조하세요.

$driverOptions : 배열

PHP 드라이버와 관련된 옵션을 지정합니다. 확장 프로그램 에서 지원하는 드라이버 옵션 외에도 , 라이브러리는 기본 유형 맵 지정을 추가로 지원합니다. 생성하는 커서에 적용합니다.

이름
유형
설명

autoEncryption

배열

드라이버에서 클라이언트 사이드 필드 수준 암호화를 구성하는 옵션입니다. 확장 문서 를 참조하세요. 지원되는 암호화 옵션 목록을 참조하세요.

옵션에 가 MongoDB\Client 제공되면 keyVaultClient MongoDB\Driver\Manager .

버전 1.6에 새로 추가되었습니다.

드라이버

배열

서버 핸드셰이크에 전달할 추가 드라이버 메타데이터입니다. 이는 name, versionplatform 문자열 필드를 포함하는 배열입니다. 예를 들면 다음과 같습니다.

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

이 기능은 주로 진단 목적으로 서버에 자신을 식별하려는 사용자 지정 드라이버 및 ODM을 위해 설계되었습니다. 자신을 식별하려는 애플리케이션은 이 옵션 대신 appName URI 옵션을 사용해야 합니다.

버전 1.7에 추가 되었습니다.

서버API

클라이언트에서 API 버전을 선언하는 데 사용됩니다. 자세한 내용은 MongoDB Server 매뉴얼의 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) 공격에 노출될 수 있습니다.

버전 1.6부터 더 이상 사용되지 않습니다. 이 옵션은 더 이상 사용되지 않습니다. 대신 tlsAllowInvalidHostnames URI 옵션을 사용합니다.

ca_dir

문자열

올바르게 해시된 인증서 디렉토리의 경로입니다. 기본적으로 시스템 인증서 저장소가 사용됩니다.

지정되지 않은 경우 더 이상 사용되지 않는 capath SSL 컨텍스트 옵션으로 대체됩니다.

ca_file

문자열

인증 기관 파일의 경로입니다. 기본적으로 시스템 인증서 저장소가 사용됩니다.

지정되지 않은 경우 더 이상 사용되지 않는 cafile SSL 컨텍스트 옵션으로 대체됩니다.

버전 1.6부터 더 이상 사용되지 않습니다. 이 옵션은 더 이상 사용되지 않습니다. 대신 tlsCAFile URI 옵션을 사용합니다.

Crl_file

문자열

인증서 해지 목록 파일의 경로입니다.

pem_file

문자열

클라이언트 인증에 사용할 PEM 인코딩 인증서의 경로입니다.

지정되지 않은 경우 더 이상 사용되지 않는 local_cert SSL 컨텍스트 옵션으로 대체됩니다.

버전 1.6부터 더 이상 사용되지 않습니다. 이 옵션은 더 이상 사용되지 않습니다. 대신 tlsCertificateKeyFile URI 옵션을 사용합니다.

pem_pwd

문자열

PEM 인코딩 인증서의 암호(해당되는 경우)입니다.

지정되지 않은 경우 더 이상 사용되지 않는 passphrase SSL 컨텍스트 옵션으로 대체됩니다.

버전 1.6부터 더 이상 사용되지 않습니다. 이 옵션은 더 이상 사용되지 않습니다. 대신 tlsCertificateKeyFilePassword URI 옵션을 사용합니다.

weak_cert_validation

부울

인증서 유효성 검사 true 을 비활성화합니다. 기본값은 false 입니다.

지정되지 않은 경우 더 이상 사용되지 않는 allow_self_signed SSL 컨텍스트 옵션으로 대체됩니다.

버전 1.6부터 더 이상 사용되지 않습니다. 이 옵션은 더 이상 사용되지 않습니다. 대신 tlsAllowInvalidCertificates URI 옵션을 사용합니다.

컨텍스트

resource

SSL 컨텍스트 옵션 다른 드라이버 옵션(지정된 대로)에 대한 폴백으로 사용됩니다. 드라이버는 기본 스트림 컨텍스트를 참조하지 않습니다.

이 옵션은 이전 버전과의 호환성을 위해 지원되지만 더 이상 사용되지 않는 것으로 간주되어야 합니다.

MongoDB\Exception\InvalidArgumentException 매개변수 또는 옵션의 구문 분석과 관련된 오류의 경우입니다.

MongoDB\ 드라이버\Exception\InvalidArgumentException 확장 수준에서 매개변수 또는 옵션의 구문 분석과 관련된 오류의 경우.

MongoDB\ 드라이버\Exception\RuntimeException 확장 수준의 다른 오류(예: 연결 오류).

MongoDB\Driver\Manager 내부적으로 구성됩니다. MongoDB Server 검색 및 모니터링 에 따름 사양, MongoDB\Driver\Manager::__construct() I/O를 수행하지 않습니다. 연결은 첫 번째 작업이 실행될 때 온디맨드 방식으로 초기화됩니다.

$uri 값을 지정하지 않으면 드라이버는 포트 27017을 통해 127.0.0.1의 독립형 mongod에 연결됩니다. 다른 서버에 연결하려면 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',
]
);

다음 예는 SSL 및 인증을 사용하여 MongoDB 복제본 세트에 연결하는 방법을 보여줍니다. 이는 MongoDB Atlas에서 사용되는 방식입니다.

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

또는 생성자의 $uriOptions 매개 변수에 인증 자격 증명과 URI 매개 변수를 지정할 수도 있습니다.

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

드라이버는 생성자의 $driverOptions 매개 변수에 지정할 수 있는 추가 SSL 옵션을 지원합니다. 이러한 옵션은 MongoDB\Driver\Manager::__construct() 문서에 설명되어 있습니다.

기본적으로 MongoDB PHP 라이브러리는 BSON 문서와 배열을 각각 MongoDB\Model\BSONDocumentMongoDB\Model\BSONArray 객체로 역직렬화합니다. 다음 예시는 레거시 mongo 확장 프로그램에서 수행된 것처럼 라이브러리가 모든 것을 PHP 배열로 직렬화 해제하도록 하는 방법을 보여줍니다.

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

돌아가기

MongoDB\Client