정의
MongoDB\Client::__construct()새
Client인스턴스를 생성합니다.function __construct( ?string $uri = null, array $uriOptions = [], array $driverOptions = [] )
매개변수
$uri: 문자열MongoDB 연결 문자열입니다. 자세한 내용은 MongoDB 매뉴얼의 연결 문자열을 참조하세요.
지정하지 않으면 기본값은
"mongodb://127.0.0.1:27017"입니다.URI 구성 요소의 모든 특수 문자는 RFC 3986에 따라 인코딩해야 합니다. 이는 특히 사용자 이름 및 비밀번호와 관련이 있으며, 여기에는
@,:또는%과 같은 특수 문자가 포함될 수 있는 경우가 많습니다. Unix 도메인 소켓을 통해 연결할 때 소켓 경로에 슬래시와 같은 특수 문자가 포함될 수 있으므로 인코딩해야 합니다. rawurlencode() 함수를 사용하여 URI의 구성 부분을 인코딩할 수 있습니다.$uriOptions: 배열인증 자격 증명 또는 쿼리 문자열 매개변수와 같은 추가 URI 옵션을 지정합니다. 에 지정된 옵션은
$uriOptions문자열에 있는 유사한 옵션보다 우선하며$uriRFC 3986 에 따라 인코딩할 필요가 없습니다.지원되는 옵션 목록은 MongoDB\ 드라이버\ 관리자::__construct() 확장 문서를 참조하세요.
$driverOptions: 배열PHP 운전자 와 관련된 옵션을 지정합니다. 확장에서 지원하는 운전자 옵션 외에도 라이브러리는 생성하는 커서에 적용할 기본 유형 맵 지정을 추가로 지원합니다.
이름유형설명autoEncryption
배열
운전자 에서 클라이언트 사이드 필드 수준 암호화 구성하는 옵션입니다. 지원되는 암호화 옵션 목록은 확장 프로그램 설명서를 참조하세요.
옵션에 가
MongoDB\Client제공되면keyVaultClient확장을 위해 MongoDB\ 드라이버\ 관리자 로 래핑 해제됩니다.버전 1.6에 추가 되었습니다.:
드라이버
배열
서버 핸드셰이크에 전달할 추가 드라이버 메타데이터입니다. 이는
name,version및platform문자열 필드를 포함하는 배열입니다. 예를 들면 다음과 같습니다.[ 'name' => 'my-driver', 'version' => '1.2.3-dev', 'platform' => 'some-platform', ] 이 기능은 주로 진단 목적으로 서버에 자신을 식별하려는 사용자 지정 드라이버 및 ODM을 위해 설계되었습니다. 자신을 식별하려는 애플리케이션은 이 옵션 대신
appNameURI 옵션을 사용해야 합니다.버전 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', ] builderEncoder
MongoDB\Codec\Encoder
쿼리 및 집계 빌더 에 사용할 인코더입니다. 설정하다 하지 않으면 이 옵션은 기본적으로
MongoDB\Builder\BuilderEncoder클래스의 새 인스턴스 로 설정됩니다.버전 1.21에 추가 되었습니다.:
allow_invalid_hostname
부울
true인 경우 호스트 이름 유효성 검사를 비활성화합니다. 기본값은false입니다.잘못된 호스트 이름을 허용하면 운전자가 중간자(man-in-the-middle) 공격에 노출될 수 있습니다.
버전 1.6부터 더 이상 사용되지 않습니다. : 이 옵션은 더 이상 사용되지 않습니다. 대신
tlsAllowInvalidHostnamesURI 옵션을 사용하세요.ca_dir
문자열
올바르게 해시된 인증서 디렉토리의 경로입니다. 기본적으로 시스템 인증서 저장소가 사용됩니다.
지정되지 않은 경우 더 이상 사용되지 않는
capathSSL 컨텍스트 옵션으로 대체됩니다.ca_file
문자열
인증 기관 파일의 경로입니다. 기본적으로 시스템 인증서 저장소가 사용됩니다.
지정되지 않은 경우 더 이상 사용되지 않는
cafileSSL 컨텍스트 옵션으로 대체됩니다.버전 1.6부터 더 이상 사용되지 않습니다. : 이 옵션은 더 이상 사용되지 않습니다. 대신
tlsCAFileURI 옵션을 사용하세요.Crl_file
문자열
인증서 해지 목록 파일의 경로입니다.
pem_file
문자열
클라이언트 인증에 사용할 PEM 인코딩 인증서의 경로입니다.
지정되지 않은 경우 더 이상 사용되지 않는
local_certSSL 컨텍스트 옵션으로 대체됩니다.버전 1.6부터 더 이상 사용되지 않습니다. : 이 옵션은 더 이상 사용되지 않습니다. 대신
tlsCertificateKeyFileURI 옵션을 사용하세요.pem_pwd
문자열
PEM 인코딩 인증서의 암호(해당되는 경우)입니다.
지정되지 않은 경우 더 이상 사용되지 않는
passphraseSSL 컨텍스트 옵션으로 대체됩니다.버전 1.6부터 더 이상 사용되지 않습니다. : 이 옵션은 더 이상 사용되지 않습니다. 대신
tlsCertificateKeyFilePasswordURI 옵션을 사용하세요.weak_cert_validation
부울
인증서 유효성 검사
true을 비활성화합니다. 기본값은false입니다.지정되지 않은 경우 더 이상 사용되지 않는
allow_self_signedSSL 컨텍스트 옵션으로 대체됩니다.버전 1.6부터 더 이상 사용되지 않습니다. : 이 옵션은 더 이상 사용되지 않습니다. 대신
tlsAllowInvalidCertificatesURI 옵션을 사용하세요.컨텍스트
resource
다른 운전자 옵션(지정된 대로)에 대한 폴백으로 사용할 SSL 컨텍스트 옵션입니다. 운전자 기본값 스트림 컨텍스트를 참조하지 않습니다.
이 옵션은 이전 버전과의 호환성을 위해 지원되지만 더 이상 사용되지 않는 것으로 간주되어야 합니다.
오류/예외
MongoDB\Exception\InvalidArgumentException 매개변수 또는 옵션의 구문 분석과 관련된 오류의 경우입니다.
확장 수준에서 매개변수 또는 옵션의 구문 분석과 관련된 오류의 경우MongoDB\ 드라이버\Exception\InvalidArgumentException을 참조하세요.
확장 수준의 기타 오류에 대한MongoDB\ 드라이버\Exception\RuntimeException (예: 연결 오류).
행동
MongoDB\ 드라이버\ 관리자 내부적으로 구성됩니다. 서버 검색 및 모니터링 사양에 따라 MongoDB\ 드라이버\ 관리자::__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
서버 검색 및 모니터링 사양