Sau khi thiết lập trình điều khiển ban đầu, chúng tôi sẽ tiếp tục giải thích cách bắt đầu với trình điều khiển MongoDB và thư viện vùng người dùng tương ứng để viết dự án đầu tiên của chúng tôi
Cài đặt thư viện PHP với Composer
Điều cuối cùng chúng ta vẫn cần cài đặt để bắt đầu ứng dụng, đó là thư viện PHP
Thư viện cần được cài đặt » Composer, trình quản lý gói cho PHP. Hướng dẫn cài đặt Composer trên các nền tảng khác nhau có thể được tìm thấy trên trang web của nó
Cài đặt thư viện bằng cách chạy
$ composer require mongodb/mongodb
Nó sẽ xuất ra một cái gì đó giống như
./composer.json has been created Loading composer repositories with package information Updating dependencies [including require-dev] - Installing mongodb/mongodb [1.0.0] Downloading: 100% Writing lock file Generating autoload files
Trình soạn thảo sẽ tạo một số tệp. composer.json
, composer.lock
, và một thư mục vendor
sẽ chứa thư viện và bất kỳ phần phụ thuộc nào khác mà dự án của bạn có thể yêu cầu
Ngoài việc quản lý các phần phụ thuộc của bạn, Composer cũng sẽ cung cấp cho bạn một trình tải tự động [đối với các lớp của các phần phụ thuộc đó]. Đảm bảo rằng nó được bao gồm ở đầu tập lệnh của bạn hoặc trong mã khởi động ứng dụng của bạn
// This path should point to Composer's autoloader
require 'vendor/autoload.php';
Khi điều này được thực hiện, bây giờ bạn có thể sử dụng bất kỳ chức năng nào như được mô tả trong » tài liệu thư viện
Nếu trước đó bạn đã sử dụng trình điều khiển cũ [i. e. mongo
], API của thư viện sẽ trông quen thuộc. Nó chứa một lớp » Client để kết nối với MongoDB, và » Lớp cơ sở dữ liệu cho các hoạt động cấp cơ sở dữ liệu [e. g. lệnh, quản lý bộ sưu tập] và » Lớp bộ sưu tập cho các hoạt động cấp bộ sưu tập [e. g. » Phương pháp CRUD, quản lý chỉ mục]. Các phương thức Thu thập khác nhau đã được đổi tên cho rõ ràng và phù hợp với thông số kỹ thuật » không phân biệt ngôn ngữ mới
Ví dụ, đây là cách bạn chèn một tài liệu vào bộ sưu tập các loại bia của cơ sở dữ liệu demo
require 'vendor/autoload.php'; // include Composer's autoloader
$client = new MongoDB\Client["mongodb://localhost:27017"];
$collection = $client->demo->beers;
$result = $collection->insertOne[ [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] ];
./composer.json has been created Loading composer repositories with package information Updating dependencies [including require-dev] - Installing mongodb/mongodb [1.0.0] Downloading: 100% Writing lock file Generating autoload files0
Thay vì đưa trường
./composer.json has been created Loading composer repositories with package information Updating dependencies [including require-dev] - Installing mongodb/mongodb [1.0.0] Downloading: 100% Writing lock file Generating autoload files1 đã tạo vào tài liệu đầu vào [như đã được thực hiện trong trình điều khiển cũ], giờ đây nó được cung cấp thông qua đối tượng kết quả được trả về bởi phương thức
./composer.json has been created Loading composer repositories with package information Updating dependencies [including require-dev] - Installing mongodb/mongodb [1.0.0] Downloading: 100% Writing lock file Generating autoload files2
Sau khi chèn, tất nhiên bạn cũng có thể truy vấn dữ liệu mà bạn vừa chèn. Để làm được điều đó, bạn sử dụng phương thức
./composer.json has been created Loading composer repositories with package information Updating dependencies [including require-dev] - Installing mongodb/mongodb [1.0.0] Downloading: 100% Writing lock file Generating autoload files3, phương thức này trả về một con trỏ có thể lặp lại
require 'vendor/autoload.php'; // include Composer's autoloader
$client = new MongoDB\Client["mongodb://localhost:27017"];
$collection = $client->demo->beers;
./composer.json has been created Loading composer repositories with package information Updating dependencies [including require-dev] - Installing mongodb/mongodb [1.0.0] Downloading: 100% Writing lock file Generating autoload files6
./composer.json has been created Loading composer repositories with package information Updating dependencies [including require-dev] - Installing mongodb/mongodb [1.0.0] Downloading: 100% Writing lock file Generating autoload files7
Mặc dù có thể không rõ ràng trong các ví dụ, nhưng theo mặc định, các tài liệu và mảng BSON không được đánh số thứ tự thành các lớp kiểu trong thư viện. Các lớp này đảm bảo rằng các giá trị bảo toàn loại của chúng khi được tuần tự hóa trở lại BSON, điều này tránh được cảnh báo trước trong trình điều khiển cũ nơi các mảng có thể biến thành tài liệu và ngược lại. Ngoài ra, các lớp mở rộng ArrayObject để nâng cao khả năng sử dụng. Bạn có thể tìm thêm thông tin về cách tuần tự hóa và giải tuần tự hóa giữa các biến PHP và BSON được trình điều khiển và thư viện xử lý bằng cách đọc Đặc tả dữ liệu liên tục