Cài cắm nâng cấp chiếc thuyền Laravel Sail

Tram Ho

Đến cuối cùng thì, Sail chỉ là phiên bản tối giản của Docker. Và bạn có thể tự do chỉnh sửa gần như mọi thứ. Ở bài này, mình sẽ cố gắng cài cắm Laravel Mongodb vào project của chúng ta và sử dụng nhé.

Chỉnh sửa Dockerfile

Để lấy được file config Docker của Sail, các bạn cần gõ command

Lúc này một folder docker đã xuất hiện thêm trong project của chúng ta

Ở đât các bạn sẽ thấy có 2 directory là 7.48.0 đại diện cho 2 phiên bản php mà Sail cho sẵn chúng ta xài, và mặc định đang xài bản 8.0 nha. Bây giờ chúng ta sẽ cố gắng cái php mongodb extension.
Các bạn mở file docker/8.0/Dockerfile, tại đây đã sẽ có script hình thành nên container cho chúng ta. Tìm xuống phía dưới đoạn RUN apt-get update..., đoạn này rất dài, chúng ta xuống phía dưới nó và thêm dòng dưới đây vào

file của chúng ta sẽ có dạng như này

Rồi bây giờ cần build lại docker bằng command

Quá trình này có thể diễn ra từ vài chục phút tới vài phút

Cài đặt và sử dụng Laravel Mongodb

Sau khi thêm thành công php mongodb extension, việc cài đặt package https://github.com/jenssegers/laravel-mongodb hẳn sẽ không gây ra lỗ lầm gì

Tiếp theo chúng ta sẽ khởi tạo services mongodb bằng Takeout

Như bài trước thì chúng ta đã biết tích hợp Takeout với Sail, thời điểm này mình sẽ lấy alias của services mongo, chính là mongo luôn, nhét vào DB_HOST trong .env. Còn với DB_CONNECTION thì cái này thuộc settings mongo, mình ko đi sâu vào phân tích vì ngoài phạm trù bài viết, mà chỉ đưa ra config của mình để đảm bảo nó sẽ hoạt động

Mặc định thì Takeout sẽ đưa chúng ta username và password của root mongo lần lượt là adminpassword. Mình sẽ đăng nhập vào CLI admin mongo và tạo user mới bằng câu lệnh

Trong config/database.php, tìm tới index connections, tại đây là nơi khai báo các thiết lập của database, mình sẽ thêm thiết lập cho mongo của chúng ta

Chúng ta đã có connection cho mongo rồi, giờ chỉ việc fill vào .env thôi

Chạy thử

Để đảm bảo mọi thứ hoạt động thì mình sẽ tạo 1 model Product

Bên trong app/Models/Product.php thì setup nó sử dụng connection mongo

Cuối cùng mở tinker lên tạo thử 1 product xem nào

Kết

Đây hẳn sẽ là bài viết cuối cùng của series này

Thật ra lượng kiến thức truyền tải của bài này không phải quá nhiều, phần lớn là biểu diễn một case khả năng cao sẽ gặp cho các bạn làm ví dụ thôi

Hi vọng bài viết và cả series này đã giúp ích cho các bạn! Hẹn gặp lại vào lần tới nhé

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo