문서 메뉴

문서 홈애플리케이션 개발MongoDB 드라이버

MongoDB PHP 드라이버

이 페이지의 내용

  • 서론
  • 드라이버 아키텍처
  • 호환되는 MongoDB 배포에 연결하기
  • 설치
  • MongoDB Atlas에 연결
  • 스테이블 API 없이 MongoDB Atlas에 연결하기
  • 로컬 기계에서 MongoDB Server에 연결하기
  • 호환성
  • 다음도 참조하세요.

공식 MongoDB PHP 드라이버의 문서 사이트에 오신 것을 환영합니다. 애플리케이션에 드라이버를 추가하여 PHP에서 MongoDB를 사용할 수 있습니다. MongoDB PHP 드라이버는 다음과 같은 구성 요소로 이루어져 있습니다.

  • 확장자, 저수준 API를 제공하며 주로 libmongoc 및 libbson 을 PHP와 통합하는 역할을 합니다.

  • 라이브러리 는 다른 MongoDB 언어 드라이버와 일치하는 MongoDB 데이터베이스 작업을 위한 고급 API를 제공합니다.

확장을 단독으로 사용할 수도 있지만 MongoDB는 확장과 라이브러리를 함께 사용할 것을 권장합니다. PHP 드라이버의 구성 요소에 대해 자세히 알아보려면 이 페이지의 드라이버 아키텍처 섹션을 참조하세요.

다음 링크를 통해 드라이버에 대해 자세히 알아보고, 실행 가능한 프로젝트 설정에 대한 튜토리얼 콘텐츠에 액세스하세요:

이 섹션에서는 PHP 드라이버의 구성 요소가 함께 작동하는 방식을 설명합니다. 이러한 구성 요소는 다음과 같은 일반적인 카테고리에 속합니다.

  • 라이브러리 및 기타 통합을 포함하는 고급 API

  • 시스템 라이브러리를 통합하는 확장을 포함하는 확장 프로그램

  • C 드라이버, BSON 라이브러리 및 암호화 라이브러리가 포함된 시스템입니다.

다음 다이어그램은 PHP 드라이버 구성 요소의 아키텍처를 보여줍니다.

PHP 드라이버 컴포넌트 아키텍처

PHP 라이브러리는 다른 MongoDB 드라이버와 일관된 API를 제공합니다. 라이브러리는 드라이버 간 사양을 충족하기 위해 지속적으로 업데이트됩니다. 대부분의 PHP 애플리케이션에서는 MongoDB에 액세스하려면 라이브러리를 종속성으로 추가해야 합니다.

확장은 PECL 을 사용하여 배포됩니다. , PHP를 시스템 라이브러리에 연결합니다. 확장 프로그램의 공개 API는 다음과 같은 기능을 제공합니다.

  • 연결 관리

  • BSON 인코딩 및 디코딩

  • 객체 문서 직렬화

  • 명령 실행

  • 커서 관리

시스템 라이브러리에 대해 자세히 알아보려면 C 드라이버 설명서를 참조하세요.

다음 환경에 호스팅된 배포에 연결하기 위해 PHP 드라이버를 사용할 수 있습니다:

  • MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스

  • MongoDB Enterprise: 구독 기반의 자체 관리형 MongoDB 버전

  • MongoDB Community: 무료로 사용할 수 있는 소스 제공의 자체 관리형 MongoDB 버전입니다.

먼저 시스템에 최신 버전의 PHP가 설치되어 있는지 확인합니다.공식 PHP 매뉴얼 참조 다운로드 및 설치 지침을 참조하세요.

MongoDB용 PHP 라이브러리를 설치하기 전에 PHP MongoDB 확장 프로그램을 설치하세요.PECL 을 사용하여 확장을 설치할 수 있습니다. 명령줄에서

$ sudo pecl install mongodb

마지막으로 php.ini 파일에 다음 줄을 추가합니다:

extension=mongodb.so

참고

일부 시스템에서는 개별 SAPI에 대해 여러 개의 INI 파일이 있을 수 있습니다(예 CLI, FPM). 필요한 모든 SAPI에서 확장을 사용하도록 설정해야 합니다.

PHP 라이브러리를 설치하는 기본 방법은 컴포저 를 사용하는 것입니다. 프로젝트 루트에서 다음을 실행합니다.

$ composer require mongodb/mongodb

라이브러리를 설치한 후에는 다음 예시와 같이 애플리케이션에 Composer의 자동 로더가 포함되어 있는지 확인하세요.

<?php
require_once __DIR__ . '/vendor/autoload.php';

추가 설치 지침은 라이브러리 설명서에서 확인할 수 있습니다.

다음 연결 스니펫을 사용하여 Atlas에서 MongoDB deployment에 대한 연결을 테스트할 수 있습니다.

<?php
use Exception;
use MongoDB\Client;
use MongoDB\Driver\ServerApi;
// Replace the placeholder with your Atlas connection string
$uri = '<connection string>';
// Specify Stable API version 1
$apiVersion = new ServerApi(ServerApi::V1);
// Create a new client and connect to the server
$client = new MongoDB\Client($uri, [], ['serverApi' => $apiVersion]);
try {
// Send a ping to confirm a successful connection
$client->selectDatabase('admin')->command(['ping' => 1]);
echo "Pinged your deployment. You successfully connected to MongoDB!\n";
} catch (Exception $e) {
printf($e->getMessage());
}

연결 스니펫은 스테이블 API(Stable API) 기능을 사용합니다. 이 기능은 PHP 드라이버 v1.9 이상 사용 시 활성화할 수 있으며 MongoDB Server v5.0 이상에 연결할 때에도 사용됩니다. 이 기능을 사용하면 스테이블 API에서 다루는 모든 명령의 하위 호환성 문제에 대한 걱정 없이 드라이버나 서버를 업데이트할 수 있습니다.

Stable API 기능에 대해 자세히 알아보려면 서버 매뉴얼의 Stable API 를 참조하세요.

참고

2022년 2월부터 버전이 지정된 APIStable API로 표시됩니다. 이름은 변경되나 모든 개념과 기능은 동일하게 유지됩니다.

Stable API 기능에 대한 지원이 없는 MongoDB 버전 또는 드라이버를 사용하는 경우, 다음 코드 스니펫을 사용하여 Atlas에서 MongoDB 배포에 대한 연결을 테스트할 수 있습니다.

<?php
use Exception;
use MongoDB\Client;
// Replace the placeholder with your Atlas connection string
$uri = '<connection string>';
// Create a new client and connect to the server
$client = new MongoDB\Client($uri);
try {
// Send a ping to confirm a successful connection
$client->selectDatabase('admin')->command(['ping' => 1]);
echo "Pinged your deployment. You successfully connected to MongoDB!\n";
} catch (Exception $e) {
printf($e->getMessage());
}

Atlas cluster를 사용하는 대신 개발 목적으로 로컬 컴퓨터에서 MongoDB 서버를 실행해야 하는 경우, 다음을 완료해야 합니다:

  1. MongoDB Server의 Community 또는 Enterprise 버전을 다운로드합니다.

  2. MongoDB Server 를 설치하고 구성합니다 .

  3. 서버를 시작합니다.

중요

항상 악의적인 공격으로부터 MongoDB 서버를 보호하세요. 보안 체크 리스트에서 보안 권장 사항 목록을 확인하세요.

MongoDB Server를 성공적으로 시작한 후에는 드라이버 연결 코드에 연결 문자열을 지정하세요.

MongoDB Server가 로컬에서 실행되는 경우 연결 문자열("mongodb://localhost:<port>")을 사용할 수 있습니다. 여기서 <port>는 서버가 들어오는 연결을 수신하도록 구성한 포트 번호입니다.

다른 호스트 이름이나 IP 주소를 지정해야 하는 경우 연결 문자열에 대한 서버 매뉴얼 항목을 참조하세요.

서버에 연결할 수 있는지 테스트하려면 MongoDB Atlas 에 연결 코드 예제에서 연결 문자열을 바꾸고 실행하세요.

비트 플랫폼에서 비트 정수를 나타내는 데 잠재적인 문제가 있으므로 사용자는 64 32 64비트 환경을 사용하는 것이 좋습니다.32비트 플랫폼을 사용하는 경우 데이터베이스에서 64읽은 모든 비트 정수는 MongoDB\BSON\Int64 PHP 정수 유형 대신 인스턴스.

다음 호환성 표는 MongoDB의 특정 버전과 함께 사용할 PHP 드라이버의 권장 버전을 명시합니다.

첫 번째 열에는 드라이버 버전이 나열됩니다.

중요

MongoDB는 서버 버전의 수명 종료(EOL) 날짜 이후 3년 동안 MongoDB Server와 드라이버 간의 호환성을 보장합니다. MongoDB 릴리스 및 EOL 날짜에 대한 자세한 내용은 MongoDB 소프트웨어 수명 주기 일정을 참조하세요.

아이콘
설명
모든 기능이 지원됩니다.
드라이버 버전은 MongoDB 버전에서 작동하지만 모든 새로운 MongoDB 기능이 지원되는 것은 아닙니다.
표시 없음
드라이버 버전은 MongoDB 버전과 함께 테스트되지 않습니다.
PHP 드라이버 버전
MongoDB 7.0
MongoDB 6.0
MongoDB 5.0
MongoDB 4.4
MongoDB 4.2
MongoDB 4.0
몽고DB 3.6
MongoDB 3.4
MongoDB 3.2
MongoDB 3.0
MongoDB 2.6
ext + lib 1.16 ~ 1.18
ext + lib 1.15 [1]
ext 1.14 + lib 1.13
ext 1.13 + lib 1.12
ext 1.12 + lib 1.11
ext 1.11 + lib 1.10
ext 1.10 + lib 1.9
[2]
ext 1.9 + lib 1.8
ext 1.8 + lib 1.7
ext 1.7 + lib 1.6
ext 1.6 + lib 1.5
ext 1.5 + lib 1.4
확장 1.4 + 라이브러리 1.3
ext 1.3 + lib 1.2
ext 1.2 + lib 1.1
ext 1.1 + lib 1.0
ext 1.0
[1](1, 2) 라이브러리와 확장 프로그램 간의 버전 패리티를 복원하기 위해 MongoDB PHP 라이브러리 버전 1.14를 건너뛰었습니다.
[2] 확장자 1.10 + 라이브러리 1.9 드라이버는 세컨더리에서 스냅샷 읽기를 지원하지 않습니다. 자세한 내용은 MongoDB Server 버전 5 을(를) 참조하세요.0 릴리스 노트.

다음 호환성 표는 PHP의 특정 버전과 함께 사용할 PHP 드라이버의 권장 버전을 명시합니다.

첫 번째 열에는 드라이버 버전이 나열됩니다.

PHP 드라이버 버전
PHP 8.3
PHP 8.2
PHP 8.1
PHP 8.0
PHP 7.4
PHP 7.3
PHP 7.2
PHP 7.1
PHP 7.0
PHP 5.6
PHP 5.5
ext + lib 1.17 ~ 1.18
ext + lib 1.16
ext + lib 1.15 [1]
ext 1.14 + lib 1.13
ext 1.13 + lib 1.12
ext 1.12 + lib 1.11
ext 1.11 + lib 1.10
ext 1.10 + lib 1.9
ext 1.9 + lib 1.8
ext 1.8 + lib 1.7
ext 1.7 + lib 1.6
ext 1.6 + lib 1.5
ext 1.5 + lib 1.4
확장 1.4 + 라이브러리 1.3
ext 1.3 + lib 1.2

호환성 표를 읽는 방법에 대한 자세한 내용은 MongoDB 호환성 표에 대한 가이드를 참조하세요.

← Kotlin Sync 드라이버