Phần mở rộng này được phát triển trên các thư viện libmongoc và libbson. Nó cung cấp một API tối thiểu cho chức năng trình điều khiển cốt lõi. lệnh, truy vấn, ghi, quản lý kết nối và tuần tự hóa BSON
Các thư viện Userland PHP phụ thuộc vào tiện ích mở rộng này có thể cung cấp API cấp cao hơn, chẳng hạn như trình tạo truy vấn, phương thức trợ giúp lệnh riêng lẻ và GridFS. Các nhà phát triển ứng dụng nên cân nhắc sử dụng tiện ích mở rộng này cùng với thư viện MongoDB PHP, thư viện này triển khai cùng các API cấp cao hơn được tìm thấy trong trình điều khiển MongoDB cho các ngôn ngữ khác
Tài liệu
- https. //php. mạng/thủ công/vi/bộ. mongodb. php
- https. // tài liệu. mongodb. com/hệ sinh thái/trình điều khiển/php/
Cài đặt
Để xây dựng và cài đặt trình điều khiển
$ pecl install mongodb
$ echo "extension=mongodb.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`
Hướng dẫn cài đặt bổ sung có thể được tìm thấy trong PHP. tài liệu mạng
Tiện ích mở rộng này dự định sẽ được sử dụng cùng với Thư viện MongoDB PHP, được phân phối dưới dạng gói mongodb/mongodb
cho Composer
Vấn đề báo cáo
Các vấn đề liên quan đến tiện ích mở rộng phải được báo cáo trong dự án PHPC trong JIRA của MongoDB. Các vấn đề liên quan đến thư viện nên được báo cáo trong dự án PHPLIB
Đối với các câu hỏi chung và yêu cầu hỗ trợ, vui lòng sử dụng một trong các kênh Hỗ trợ kỹ thuật của MongoDB
Lỗ hổng bảo mật
Nếu bạn đã xác định được lỗ hổng bảo mật trong trình điều khiển hoặc bất kỳ dự án MongoDB nào khác, vui lòng báo cáo lỗ hổng đó theo hướng dẫn trong Tạo báo cáo lỗ hổng
Phát triển
Sự phát triển được theo dõi trong dự án PHPC trong JIRA của MongoDB. Tài liệu đóng góp cho dự án này có thể được tìm thấy trong ĐÓNG GÓP. md
Nhóm PHP vui mừng thông báo rằng phiên bản 1. 15. 0 của phần mở rộng PHP mongodb hiện đã có trên PECL
Phát hành nổi bật
Các loại trả lại dự kiến đã được thêm vào các giao diện trong toàn bộ tiện ích mở rộng. Các ứng dụng không thể khai báo kiểu trả về tương thích trong quá trình triển khai của chúng sẽ cần chỉ định thuộc tính ReturnTypeWillChange trên mỗi phương thức để tắt thông báo ngừng sử dụng trên PHP 8. 1+
Bản phát hành này thêm một số phương thức mới vào MongoDB\Driver\ClientEncryption, tạo điều kiện thuận lợi cho các hoạt động quản lý khóa trên bộ sưu tập kho lưu trữ khóa. Các phương thức này phản chiếu các API hiện có trong trình bao MongoDB
Các phép liệt kê được hỗ trợ hiện được hỗ trợ trong quá trình mã hóa BSON và sẽ tuần tự hóa thành giá trị trường hợp của chúng. Xoay vòng một enum được hỗ trợ thông qua BSON sẽ yêu cầu xử lý đặc biệt [e. g. chuyển đổi giá trị thành trường hợp bằng cách sử dụng
pecl upgrade mongodb-1.15.0
0]. Các enum thuần túy, không có trường hợp được hỗ trợ, không thể được nối tiếp trực tiếp. Enums bị cấm triển khai MongoDB\BSON\Unserializable và MongoDB\BSON\Persistable, nhưng có thể triển khai MongoDB\BSON\Serializablepecl upgrade mongodb-1.15.0
1 không còn yêu cầu tham số pecl upgrade mongodb-1.15.0
2 và sẽ mặc định là pecl upgrade mongodb-1.15.0
3Bản phát hành này nâng cấp các phụ thuộc libbson và libmongoc của chúng tôi lên 1. 23. 1. Phần phụ thuộc libmongocrypt đã được nâng cấp lên 1. 5. 2
Bạn có thể tìm thấy danh sách đầy đủ các sự cố đã giải quyết trong bản phát hành này tại. https. //jira. mongodb. org/secure/ReleaseNote. jspa?projectId=12484&version=31694
Quy ước đặt tên của PHP không nhất quán khủng khiếp. Vì vậy, để làm cho các lệnh được liệt kê bên dưới hoạt động với bạn, vui lòng đảm bảo
- Hệ điều hành của bạn là Ubuntu 20. 08
- Phiên bản PHP của bạn là 8. 0
Hãy bắt đầu với lỗi
PHP Fatal error: Uncaught Error: Class "MongoDB\Driver\Manager" not found in /var/www/dnx-mailer/vendor/mongodb/mongodb/src/Client.php:130
Stack trace:
#0 /var/www/dnx-mailer/sendInvitation.php[10]: MongoDB\Client->__construct[]
#1 {main}
thrown in /var/www/dnx-mailer/vendor/mongodb/mongodb/src/Client.php on line 130
Thật dễ dàng để biết
- Bạn đang sử dụng nhà soạn nhạc
- Rất tiếc là
composer require mongodb/mongodb
không cài được mongodb extension cho bạn. Vì vậy, bạn sẽ cần phải làm điều này của riêng bạn
Không chắc có cách nào khác không, tôi hy vọng nó có thể được cài đặt trước apt-get
, chẳng hạn như apt-get install php-mongodb, or php8.0-mongodb
[bạn hiểu ý tôi mà - Quy ước đặt tên của PHP thật kinh khủng. ] Nếu bạn muốn tiết kiệm thời gian, hãy thực hiện việc này thông qua PECL [cảnh báo - trang web của họ rất cũ, như năm 1998. ] Làm thế nào để cài đặt PECL?
của bạn đây. [một lần nữa, bạn có thể nghĩ nó sẽ là php8. 0-lê, nhưng không phải. ]
apt-get install php-pear
Được rồi tôi có thể chạy
apt-get install php-pear
0 ngay bây giờ không? . chưa, nếu không, bạn sẽ thấy lỗi nàyCó người nói, đó là do thiếu php-xml, vì vậy hãy cài đặt như sau, có thể là trên php8. 0-xml là cần thiết, nhưng vẫn cài đặt chúng và vâng, chúng tôi cần chỉ định php8. 0-xxx
apt-get install php8.0-fpm libapache2-mod-php8.0 php8.0-mysql php8.0-xml
Bây giờ chúng ta có tốt không? . Có một lỗi khác
running: phpize
sh: 1: phpize: not found
ERROR: `phpize' failed
Chúng tôi cần php-dev,
apt-get install php8.0-dev // or php-dev works too, not sure if they are the same
Cuối cùng, chạy
pecl install mongodb
Bước cuối cùng là thêm nó vào php. ini, vì tôi chỉ dùng nó cho CLI nên tôi thêm “extension=mongodb. vậy” thành “/etc/php/8. 0/cli/php. ini”
Hi vọng điêu nay co ich
Cập nhật 19/09/2022
Chỉ cần thiết lập một máy chủ LAMP khác, tại thời điểm này, tôi đang sử dụng PHP8. 1, quy trình trên vẫn hợp lệ, nhưng chỉ cần nhớ thay đổi “8. 0” đến “8. 1”. Dưới đây là ghi chú bổ sung