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
,version
및platform
문자열 필드를 포함하는 배열입니다. 예를 들면 다음과 같습니다.[ '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
인스턴스를 만들 때 해당 연결 문자열을 첫 번째 매개 변수로 전달하세요.
$client = new MongoDB\Client('mongodb://mongodb-deployment:27017');
복제본 세트에 연결
다음 예시에서는 사용자 정의 읽기 설정을 사용하여 복제본 세트에 연결하는 방법을 보여줍니다.
$client = new MongoDB\Client( 'mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet', [ 'readPreference' => 'secondaryPreferred', ] );
SSL 및 인증으로 연결
다음 예는 SSL 및 인증을 사용하여 MongoDB 복제본 세트에 연결하는 방법을 보여줍니다. 이는 MongoDB Atlas에서 사용되는 방식입니다.
$client = new MongoDB\Client( 'mongodb://myUsername:myPassword@rs1.example.com,rs2.example.com/?ssl=true&replicaSet=myReplicaSet&authSource=admin' );
또는 생성자의 $uriOptions
매개 변수에 인증 자격 증명과 URI 매개 변수를 지정할 수도 있습니다.
$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\BSONDocument
및 MongoDB\Model\BSONArray
객체로 역직렬화합니다. 다음 예시는 레거시 mongo
확장 프로그램에서 수행된 것처럼 라이브러리가 모든 것을 PHP 배열로 직렬화 해제하도록 하는 방법을 보여줍니다.
$client = new MongoDB\Client( null, [], [ 'typeMap' => [ 'root' => 'array', 'document' => 'array', 'array' => 'array', ], ] );
다음도 참조하세요.
매뉴얼의 연결 string URI 형식 MongoDB
MongoDB Server 검색 및 모니터링 사양