Hướng dẫn mongodb with lumen - mongodb với lumen

    Khi người tiêu dùng yêu cầu quyền truy cập nhiều hơn vào các ứng dụng và dịch vụ, các nhà phát triển theo đuổi những cách mới để làm cho cấu trúc dữ liệu và truy vấn hiệu quả hơn, để giảm thời gian phản hồi.

    Nhu cầu này đã vô tình dẫn đến việc di chuyển từ ngôn ngữ truy vấn có cấu trúc (SQL) sang ngôn ngữ truy vấn không cấu trúc (NOCQL) cho các tương tác cơ sở dữ liệu. Đối với các ứng dụng yêu cầu dữ liệu được lưu trữ ở một nơi và được truy cập một lần mà không tạo mối quan hệ, điều này dẫn đến truy vấn nhanh hơn.

    Một trong những phiên bản được áp dụng rộng rãi nhất của NoQuery là MongoDB, cơ sở dữ liệu dựa trên tài liệu nguồn mở được sử dụng cho lập trình cơ sở dữ liệu hướng đến đa nền tảng.

    Trong hướng dẫn này, bạn sẽ học cách sử dụng MongoDB trong ứng dụng Laravel Lumen, để lưu trữ, chỉnh sửa và đọc dữ liệu.

    Điều kiện tiên quyết

    Để hoàn thành hướng dẫn này, bạn sẽ cần truy cập vào các mục sau:

    1. Kiến thức cơ bản về PHP
    2. Trải nghiệm cơ bản với Laravel và lum
    3. Trải nghiệm cơ bản với MongoDB
    4. Php 8.0 trở lên, với phần mở rộng Mongo-DB
    5. Một tài khoản MongoDB
    6. Xoăn
    7. Nhà soạn nhạc được cài đặt trên toàn cầu (và Git, mà nhà soạn nhạc yêu cầu)

    MongoDB là cơ sở dữ liệu NoQuery định hướng tài liệu, không dựa vào bảng, hỗ trợ các truy vấn giao dịch và có hệ thống truy vấn tìm kiếm mạnh mẽ trong khi sử dụng hệ thống truy vấn đơn giản và phổ biến, trả về dữ liệu ở định dạng JSON để được tiêu thụ.

    Sử dụng MongoDB với Lumen cung cấp nhiều lợi thế cho quản lý dữ liệu như lưu trữ dữ liệu theo định hướng tài liệu, các lược đồ tài liệu linh hoạt và các phân tích mạnh mẽ.

    Ưu điểm của MongoDB với lum

    Chỉ trong trường hợp bạn mới thực hiện MongoDB trong Lumen, đây là cái nhìn toàn diện hơn về lợi ích:

    • Lưu trữ dữ liệu theo định hướng tài liệu: Dữ liệu sẽ được lưu trữ dưới dạng tài liệu, loại bỏ nhu cầu về cơ sở dữ liệu quan hệ và cung cấp sao chép dữ liệu và tính sẵn sàng cao. Dữ liệu được lưu trữ vì các bộ sưu tập và bộ sưu tập có một lượng tài liệu không giới hạn có thể chứa các loại dữ liệu khác nhau ở quy mô.Data will be stored as documents, removing the need for a relational database and providing data replications and high availability. Data is stored as collections and collections have an unlimited amount of documents that can contain diverse data types at scale.
    • Tích hợp dễ dàng: Ví dụ, với gói Laravel MongoDB, được tạo bởi Jens Segers, tích hợp và sử dụng MongoDB tương đối dễ dàng. Gói hỗ trợ cấu hình nhà cung cấp và tài liệu thích hợp.For example, with the Laravel MongoDB package, created by Jens Segers, integrating and using MongoDB is relatively easy. The package supports provider configurations and proper documentation.
    • Truy vấn nhanh: MongoDB tìm nạp các khóa, chỉ mục và bộ sưu tập chính trong một vấn đề của mili giây.MongoDB fetches primary keys, indexes, and collections in a matter of milliseconds.
    • Dựa trên đám mây: MongoDB hoàn toàn dựa trên đám mây và các bản cập nhật được thực hiện trong thời gian thực cho cơ sở dữ liệu. Điều này đảm bảo bảo mật dữ liệu và dự phòng của bạn với các bản sao lưu.: MongoDB is fully cloud-based and updates are made in real-time to the database. This ensures the security of your data and redundancy with backups.

    Cài đặt lum

    Để bắt đầu, bạn sẽ cài đặt lum vào một thư mục được chỉ định, trước khi định cấu hình MongoDB. Mở dòng thiết bị đầu cuối/lệnh của bạn và chạy mã sau để tạo dự án Lumen mới:

    composer create-project --prefer-dist laravel/lumen lumen-mongodb
    

    Thay đổi thành thư mục dự án mới được tạo

    cd lumen-mongodb
    php -S localhost:8000 -t public
    
    4 và bắt đầu ứng dụng trên cổng: 8000 bằng cách chạy các lệnh bên dưới.

    cd lumen-mongodb
    php -S localhost:8000 -t public
    

    Tiếp theo, tạo khóa ứng dụng bằng gói Maxsky/Lumen-app-Key-Generator. Chạy lệnh sau để cài đặt gói:

    composer require maxsky/lumen-app-key-generator
    

    Tiếp theo, thêm lệnh vào tệp kernel của bạn trong ứng dụng/console/kernel.php.

    protected $commands = [
        \Illuminate\Console\KeyGenerateCommand::class,
    ]
    

    Bây giờ, hãy mở thiết bị đầu cuối của bạn và chạy lệnh sau để tạo khóa ứng dụng mới:

    Chìa khóa bây giờ sẽ có sẵn gần đầu .Env.

    Cài đặt và thiết lập MongoDB

    Sau khi cài đặt và thiết lập Lumen, bạn sẽ cần phải làm ba điều:

    1. Thêm gói MongoDB vào ứng dụng
    2. Tạo một cụm MongoDB mới
    3. Liên kết cụm với ứng dụng

    Hãy bắt đầu với việc thêm gói MongoDB vào ứng dụng. Để làm điều đó, hãy chạy mã sau trong thư mục cấp cao nhất của ứng dụng:

    composer require jenssegers/mongodb
    

    Tiếp theo, đăng ký nhà cung cấp Laravel MongoDB để hỗ trợ gói mới được cài đặt thêm mã sau vào bootstrap/app.php, bên dưới

    cd lumen-mongodb
    php -S localhost:8000 -t public
    
    5.

    $app->register(Jenssegers\Mongodb\MongodbServiceProvider::class);
    

    Sau đó, giải phóng dòng sau.

    Định cấu hình cơ sở dữ liệu MongoDB

    Sau khi cài đặt hoàn tất, hãy tạo một thư mục mới có tên cấu hình và trong thư mục đó, một tệp mới có tên Database.php. Tệp mới này hỗ trợ kết nối MongoDB và biến nó thành cơ sở dữ liệu mặc định cho ứng dụng. Mã này sẽ cập nhật các biến môi trường .ENV của bạn để xác định vị trí của cụm MongoDB của bạn.

    Bạn có thể tạo tệp config/cơ sở dữ liệu.php hoặc sao chép nội dung từ nhà cung cấp/laravel/lum-framework/config/database.php vào một cấu hình/cơ sở dữ liệu mới được tạo. Với cơ sở dữ liệu.php, bạn có được cài đặt mặc định với các cấu hình cơ sở dữ liệu khác bao gồm.

    return [
      'default' => env('DB_CONNECTION', 'mongodb'),
      
      'connections' => [
        'mongodb' => [
        'driver' => 'mongodb',
        'dsn' => env('DB_URI', 'homestead'),
        'database' => 'lumen_mongodb',
        ],
      ]
    ];
    

    Biến môi trường

    cd lumen-mongodb
    php -S localhost:8000 -t public
    
    6, trong ví dụ trước, được tạo bởi MongoDB khi bạn tạo một cụm mới. Để truy xuất nó, hãy làm theo hướng dẫn trong bài viết này cho bạn biết cách cài đặt ứng dụng khách MongoDB của bạn, lấy chuỗi kết nối MongoDB (URI) của bạn và kết nối với thể hiện MongoDB của bạn.

    Sau khi cụm đã được tạo, thêm đoạn trích sau vào dưới cùng của .ENV và thay thế trình giữ chỗ

    cd lumen-mongodb
    php -S localhost:8000 -t public
    
    7 bằng URI MongoDB được truy xuất.

    Tương tác với cơ sở dữ liệu MongoDB

    Với quá trình cài đặt ngoài đường, tiếp theo, bạn phải tạo một mô hình ứng dụng sẽ nhắm mục tiêu một bộ sưu tập trong MongoDB và tìm nạp dữ liệu liên quan từ nó. Sau đó, một bộ điều khiển mới sẽ được tạo để tìm nạp dữ liệu từ cơ sở dữ liệu MongoDB.

    Tạo một mô hình mới cho phép chúng tôi kết nối với MongoDB và tương tác với một bộ sưu tập cụ thể trong cơ sở dữ liệu. Khi kết nối, sau đó chúng tôi có thể chỉ định các cột có thể được điền, chỉ định ID trong một số kịch bản và nhiều hơn nữa.

    Tạo mô hình

    Tạo một tệp mới, được đặt tên là blog.php, trong thư mục ứng dụng/mô hình và thêm mã sau vào nó:

    class Blog extends Model
    {
        protected $connection = 'mongodb';
        protected $collection = 'blogs';
    
        /**
         * The attributes that are mass assignable.
         *
         * @var string[]
         */
        protected $fillable = [
            'title', 'body'
        ];
    }
    

    Sau đó, thêm câu lệnh

    cd lumen-mongodb
    php -S localhost:8000 -t public
    
    8 sau vào đầu tệp:

    use Jenssegers\Mongodb\Eloquent\Model;
    

    Trong khối mã trước đó, biến riêng

    cd lumen-mongodb
    php -S localhost:8000 -t public
    
    9 lưu trữ kết nối cơ sở dữ liệu. Điều này rất quan trọng bởi vì, theo mặc định, Lumen sử dụng MySQL làm cơ sở dữ liệu mặc định.

    Tiếp theo, biến

    composer require maxsky/lumen-app-key-generator
    
    0 chỉ định tên của bộ sưu tập cơ sở dữ liệu MongoDB để truy vấn. Khi một yêu cầu được thực hiện thông qua một tuyến đường, được bộ điều khiển chọn và gửi đến mô hình, dữ liệu được yêu cầu được tìm nạp từ
    composer require maxsky/lumen-app-key-generator
    
    0 được chỉ định.

    Tạo một bộ điều khiển

    Để tương tác với mô hình được tạo, một bộ điều khiển cần được tạo và các chức năng được thêm vào nó. Sau khi hoàn thành, bộ điều khiển này sẽ có thể tìm nạp, cập nhật, tạo và xóa dữ liệu trong bộ sưu tập MongoDB được chỉ định.

    Để thực hiện việc này, hãy tạo một tệp mới trong thư mục Ứng dụng/HTTP/Bộ điều khiển và đặt tên nó là BlogControll.php. Sau đó, trong tệp mới được tạo, thêm hàm

    composer require maxsky/lumen-app-key-generator
    
    2 như được mô tả trong phần tiếp theo. Hàm này sẽ lấy tất cả các mục blog từ bộ sưu tập và trả lại chúng ở định dạng JSON.

    public function index(): JsonResponse 
    {
        $blogs = Blog::all();
        return response()->json($blogs);
    }
    

    Sau đó, thêm các câu lệnh

    cd lumen-mongodb
    php -S localhost:8000 -t public
    
    8 sau vào đầu tệp:

    cd lumen-mongodb
    php -S localhost:8000 -t public
    
    0

    Tạo tuyến đường

    Bước tiếp theo là tạo một tuyến đường sẽ chấp nhận yêu cầu API và trả về tất cả các mục blog từ bộ sưu tập dưới dạng phản hồi.

    Để làm điều đó, vào cuối các tuyến/web.php tạo một tuyến đường mới nhắm vào chức năng

    composer require maxsky/lumen-app-key-generator
    
    2 trong bộ điều khiển blog, bằng cách thêm mã sau.

    cd lumen-mongodb
    php -S localhost:8000 -t public
    
    1

    Kiểm tra ứng dụng

    Để kiểm tra, chúng tôi sẽ sử dụng Curl trên thiết bị đầu cuối của chúng tôi để thực hiện yêu cầu nhận được tuyến đường

    composer require maxsky/lumen-app-key-generator
    
    5. Yêu cầu này sẽ tương tác với bộ điều khiển được chỉ định để lấy dữ liệu từ bộ sưu tập, sử dụng mô hình, trả về phản hồi chứa dữ liệu ở định dạng JSON và hiển thị nó trong thiết bị đầu cuối.

    Để làm điều đó, hãy chạy mã sau trong thiết bị đầu cuối của bạn:

    cd lumen-mongodb
    php -S localhost:8000 -t public
    
    2

    Bạn sẽ nhận được phản hồi tương tự như ví dụ JSON sau:

    cd lumen-mongodb
    php -S localhost:8000 -t public
    
    3

    Đó là cách sử dụng MongoDB trong Laravel lum

    Trong hướng dẫn này, bạn đã học ngắn gọn về mongDB là gì và lợi thế của nó để phát triển các ứng dụng quy mô lớn; bao gồm các truy vấn dữ liệu nhanh và lưu trữ dữ liệu dựa trên tài liệu.

    Sau đó, bạn đã tạo một ứng dụng Laravel Lumen mới và tích hợp MongoDB vào đó để nó có thể tương tác với các cụm và bộ sưu tập. Cuối cùng, bạn đã học cách tìm nạp dữ liệu được hiển thị ở định dạng JSON để đáp ứng với truy vấn API.

    Tôi hy vọng bài viết này đã cho bạn một giới thiệu rộng rãi về cách sử dụng MongoDB trong dự án Lumen tiếp theo của bạn. Nếu bạn muốn sao chép mã được sử dụng trong bài viết này và nhìn sâu hơn vào nó, bạn có thể sử dụng kho lưu trữ GitHub này.

    Kenneth Ekandem là một nhà phát triển đầy đủ từ Nigeria hiện đang ở trong không gian blockchain, nhưng quan tâm đến việc tìm hiểu mọi thứ khoa học máy tính cung cấp. Một ngày nào đó anh ấy thích đi đến không gian và cũng sở hữu kênh vlogging của riêng mình để dạy thế hệ lập trình viên tiếp theo.

    • Laravel
    • Lumen
    • cơ sở dữ liệu
    • MongoDB