TL; DR
Lớp MongoClient
là một phần của gói PECL kế thừa mongo nhưng không phải là gói mongodb cập nhật nữa.
Và vì bạn có mongodb
đã cài đặt tiện ích mở rộng chứ không phải mongo
một, đây là lý do tại sao bạn gặp lỗi
Fatal error: Class 'MongoClient' not found
Trên repo github trình điều khiển MongoDB PHP, ghi chú phát hành về phiên bản 1.0.0, đề xuất các nhà phát triển sử dụng MongoDB\Driver\Manager
thay vì MongoClient
Các thay đổi từ tiện ích mở rộng mongo cũ của chúng tôi
Đáng kể nhất, các lớp MongoClient, MongoDB vàMongoCollection của trình điều khiển kế thừa đã bị loại bỏ bởi lớpMongoDB \ Driver \ Manager, là cổng mới để kết nối và thực hiện các truy vấn, lệnh và hoạt động ghi.
Vì vậy, đây là tài liệu về lớp thay thế và đoạn mã sẽ thay thế của bạn:
$m = new MongoDB\Driver\Manager("mongodb://localhost:27017");
Vì tài liệu đang nhắc nó, lớp này không được dùng nữa.
Cảnh báo Tiện ích mở rộng xác định lớp này không được dùng nữa. Thay vào đó, nên sử dụng phần mở rộng MongoDB. Các lựa chọn thay thế cho lớp này bao gồm:
- MongoDB \ Driver \ Manager
Từ những gì tôi đọc được trên lịch sử phát hành kho lưu trữ github của họ, lớp bạn đang cố gắng sử dụng đã bị loại bỏ kể từ phiên bản mongodb 1.0.0
, vì vậy, trên phiên bản 1.6.0
bạn đang có, lớp này thậm chí không phải là một phần của dll
nữa.
Điều đó đã được xác nhận bởi vấn đề này trên github của họ
phái sinh đã bình luận vào ngày 16 tháng 4
MongoClient là một lớp từ trình quản lý kế thừa cũ và không được cho là có sẵn trong trình này. Trình điều khiển mới có \ MongoDB \ Driver \ Manager và thư viện đi kèm có \ MongoDB \ Client.
Bạn cần cài đặt tiện ích mở rộng kế thừa cũ (pecl installmongo) và sử dụng PHP 5.x hoặc cập nhật mã của bạn để sử dụng các lớp trình điều khiển mới này vì trình điều khiển cũ không khả dụng cho PHP 7. Có hướng dẫn nâng cấp tại đây:// mongodb.github.io/mongo-php-library/upgrade-guide/
Một cách khác, theo đề xuất của thành viên MongoDB được trích dẫn ở đây ở trên là sử dụng phần mở rộng pecl này:https://pecl.php.net/package/mongo thay vì https://pecl.php.net/package/mongodb. lưu ý cảnh báo ở đó nêu rõ:
Gói này đã được thay thế, nhưng vẫn được duy trì để sửa lỗi và sửa lỗi bảo mật.