Hướng dẫn alcaeus mongo php adapter packagist - alcaeus mongo php adapter packagist

Bộ điều hợp để cung cấp giao diện ext-Mongo trên đầu của Ti-php-Library


Readme

Hướng dẫn alcaeus mongo php adapter packagist - alcaeus mongo php adapter packagist

Bộ điều hợp Mongo PHP là một thư viện người dùng được thiết kế để hoạt động như một bộ chuyển đổi giữa các ứng dụng dựa trên ext-mongo và trình điều khiển mới (ext-mongodb).

Nó cung cấp API của ext-Mongo được xây dựng trên đỉnh của huy-la-php-php, do đó tương thích với PHP 7.

Mục tiêu

Thư viện này nhằm mục đích cung cấp một lớp tương thích cho các ứng dụng dựa vào các thư viện bằng cách sử dụng ext-mongo, ví dụ: Học thuyết MongoDB ODM, nhưng muốn di chuyển sang Php 7 mà ext-mongo sẽ không chạy.

Bạn không nên sử dụng thư viện này nếu bạn không dựa vào thư viện bằng ext-mongo. Nếu bạn đang bắt đầu một dự án mới, vui lòng kiểm tra MongoDB/MongoDB.

Cài đặt

Thư viện này yêu cầu bạn phải cài đặt tiện ích mở rộng mongodb và nó mâu thuẫn với tiện ích mở rộng Legacy mongo.

Phương thức ưa thích để cài đặt thư viện này là với trình soạn thảo bằng cách chạy như sau từ root dự án của bạn:

$ composer config "platform.ext-mongo" "1.6.16" && composer require alcaeus/mongo-php-adapter

Lệnh trên đầu tiên đánh dấu tiện ích mở rộng mongo khi được cài đặt, sau đó yêu cầu bộ điều hợp này. Điều này là để làm việc xung quanh một lỗi trong trình soạn thảo, xem Nhà soạn nhạc/Nhà soạn nhạc#5030.

Các vấn đề đã biết

Trả về các giá trị và ngoại lệ

Một số phương pháp có thể không đưa ra các ngoại lệ với các thông điệp ngoại lệ giống như các đối tác của họ trong ext-mongo. Không dựa vào các thông điệp ngoại lệ là như nhau.

Các phương thức trả về mảng kết quả chứa trường

$ composer install
$ vendor/phpunit/phpunit/phpunit --verbose
0 sẽ luôn trả về
$ composer install
$ vendor/phpunit/phpunit/phpunit --verbose
1 dưới dạng ID kết nối.

Lỗi

Tất cả các lỗi và cảnh báo được kích hoạt bởi ext-mongo được kích hoạt là

$ composer install
$ vendor/phpunit/phpunit/phpunit --verbose
3 và
$ composer install
$ vendor/phpunit/phpunit/phpunit --verbose
4 vì
$ composer install
$ vendor/phpunit/phpunit/phpunit --verbose
5 không chấp nhận mã
$ composer install
$ vendor/phpunit/phpunit/phpunit --verbose
6 và
$ composer install
$ vendor/phpunit/phpunit/phpunit --verbose
7. Nếu bạn dựa vào các mã lỗi này trong các thói quen xử lý lỗi của mình, vui lòng cập nhật mã của bạn cho phù hợp.

Tuần tự hóa các đối tượng

Nối tiếp hóa bất kỳ đối tượng Mongo* nào (ví dụ: Mongopridfsfile, Mongocursor, v.v.) sẽ không hoạt động đúng. Các đối tượng có thể được tuần tự hóa nhưng không thể sử dụng được sau khi không xác định chúng.

  • Lớp Mongo không được chấp nhận và không được triển khai trong thư viện này. Nếu bạn vẫn đang sử dụng nó, vui lòng cập nhật mã của bạn để sử dụng các lớp mới.

D chờ

  • Lớp Mongolog không ghi lại bất cứ điều gì vì trình điều khiển cơ bản không cung cấp một phương thức để truy xuất dữ liệu này.

Mongoclient

  • Các phương thức kết nối và đóng không được triển khai vì trình điều khiển cơ bản kết nối một cách uể oải và không cung cấp các phương thức để kết nối ngắt kết nối.
  • Phương thức GetConnections không được triển khai vì trình điều khiển cơ bản không cung cấp một phương thức để truy xuất dữ liệu này.
  • Phương pháp Killcursor chưa được thực hiện.

MongoDB

  • Phương pháp xác thực không được hỗ trợ. Để kết nối với cơ sở dữ liệu với xác thực, vui lòng cung cấp thông tin đăng nhập bằng chuỗi kết nối.
  • Bộ sưu tập
    $ composer install
    $ vendor/phpunit/phpunit/phpunit --verbose
    
    8 không thể được sử dụng do một vấn đề trong trình điều khiển cơ bản. Để chạy các lệnh, hãy sử dụng phương thức lệnh thay vì truy vấn bộ sưu tập ảo
    $ composer install
    $ vendor/phpunit/phpunit/phpunit --verbose
    
    8.

Mongocollection

  • Các phương thức chèn, batchinsert và lưu lấy đối số đầu tiên bằng cách tham chiếu. Mặc dù API ban đầu không chỉ định rõ ràng các đối số tham chiếu phụ, nhưng nó thêm một trường ID vào các đối tượng và tài liệu được đưa ra.
  • Phương pháp song songCollectionscan chưa được thực hiện.

Mongocursor

  • Phương thức thông tin không đáng tin cậy điền vào tất cả các trường trong thông tin con trỏ. Điều này bao gồm các phím
    $ mongod --smallfiles --fork --logpath /var/log/mongod.log --setParameter enableTestCommands=1
    
    0 và
    $ mongod --smallfiles --fork --logpath /var/log/mongod.log --setParameter enableTestCommands=1
    
    1 một khi con trỏ đã bắt đầu lặp lại. Trường
    $ mongod --smallfiles --fork --logpath /var/log/mongod.log --setParameter enableTestCommands=1
    
    0 sẽ luôn hiển thị cùng giá trị với trường
    $ mongod --smallfiles --fork --logpath /var/log/mongod.log --setParameter enableTestCommands=1
    
    3. Trường
    $ mongod --smallfiles --fork --logpath /var/log/mongod.log --setParameter enableTestCommands=1
    
    1 đang thiếu thông tin xác thực.
  • Phương thức SETFLAG chưa được thực hiện.
  • Phương thức thời gian chờ sẽ không thay đổi bất kỳ tùy chọn truy vấn nào. Thời gian chờ phía khách hàng không còn được trình điều khiển mới hỗ trợ. Sử dụng cài đặt MaxTimems để thay thế.

Mongocommandcursor

  • Phương thức createdFromDocument chưa được thực hiện.
  • Phương thức thông tin không đáng tin cậy điền vào tất cả các trường trong thông tin con trỏ. Điều này bao gồm các trường
    $ mongod --smallfiles --fork --logpath /var/log/mongod.log --setParameter enableTestCommands=1
    
    3,
    $ mongod --smallfiles --fork --logpath /var/log/mongod.log --setParameter enableTestCommands=1
    
    0,
    $ mongod --smallfiles --fork --logpath /var/log/mongod.log --setParameter enableTestCommands=1
    
    7 và
    $ mongod --smallfiles --fork --logpath /var/log/mongod.log --setParameter enableTestCommands=1
    
    8. Các trường
    $ mongod --smallfiles --fork --logpath /var/log/mongod.log --setParameter enableTestCommands=1
    
    3 và
    $ mongod --smallfiles --fork --logpath /var/log/mongod.log --setParameter enableTestCommands=1
    
    0 luôn trả về 0 để tương thích với Mongocursor. Các trường
    $ mongod --smallfiles --fork --logpath /var/log/mongod.log --setParameter enableTestCommands=1
    
    7 và
    $ mongod --smallfiles --fork --logpath /var/log/mongod.log --setParameter enableTestCommands=1
    
    8 sẽ chứa cùng một giá trị, đó là vị trí bên trong của trình lặp.

Sự phát triển

Nếu bạn đang làm việc trên các bản vá cho trình điều khiển này, bạn có thể chạy các bài kiểm tra đơn vị bằng cách làm theo các bước này từ gốc của thư mục repo:

$ composer install
$ vendor/phpunit/phpunit/phpunit --verbose

Nó giả định rằng ext-mongodb3 đang chạy một máy chủ Mongod. Dưới đây là một lệnh mẫu để bắt đầu MongoD cho các thử nghiệm này:

$ mongod --smallfiles --fork --logpath /var/log/mongod.log --setParameter enableTestCommands=1

Các thử nghiệm cũng giả sử Php 5.6+ và tiện ích mở rộng ext-mongodb có sẵn.