Triển khai CRUD với Laravel Service-Repository Pattern

Tại sao lại sử dụng Laravel Service và Repository Pattern? Có rất nhiều cách mà laravel có thể xây dựng chức năng CRUD. Nhưng cá nhân tôi đề xuất mô hình service-repository design pattern bởi vì nó clear và bền. Khái niệm về repositories and services đảm bảo rằng bạn viết mã có thể sử

Tại sao lại sử dụng Laravel Service và Repository Pattern?

Có rất nhiều cách mà laravel có thể xây dựng chức năng CRUD. Nhưng cá nhân tôi đề xuất mô hình service-repository design pattern bởi vì nó clear và bền. Khái niệm về repositories and services đảm bảo rằng bạn viết mã có thể sử dụng lại và giúp giữ cho controller của bạn càng đơn giản càng tốt, làm cho chúng dễ đọc hơn.

Repositories thường là một trình bao bọc chung cho mô hình của bạn và là nơi bạn sẽ viết các truy vấn khác nhau trong cơ sở dữ liệu của mình. Mặt khác, một Service là một lớp để xử lý tất cả logic của ứng dụng của bạn. Dựa trên kinh nghiệm, sẽ thực sự hữu ích khi tách biệt logic và trình bao bọc của mô hình, đặc biệt là khi bạn đang làm việc trong nhóm hoặc các dự án lớn.

Để minh họa Service và Repository, chúng tôi sẽ xây dựng một ứng dụng CRUD.

Để bắt đầu, hãy thiết lập Model, Controller và Migration bằng cách thực hiện:

php artisan make:model Post -mcr

  • -m: –migration tạo mới file migration
  • -c: –controller tạo mới file controller
  • -r: –resource để chỉ định controller có tài nguyên hay không

Route

Model

Migration

Sau đó, update post migration như bên dưới rồi thực hiện:

php artisan migrate

Repository

Laravel không có lệnh tạo repository. Bạn phải làm điều đó bằng tay. Chỉ cần tạo một thư mục Repositories, sau đó thêm file PostRepository và thêm code bên dưới.

Gọi model Post trong hàm tạo (construct)

Service

Giống như Repository, laravel không có lệnh tạo Service. Tạo thư mục Services, thêm file PostService và thêm code bên dưới.

Gọi PostRepositoryt trong hàm tạo (construct) của class PostService.

Bây giờ chúng ta đã hoàn tất việc thiết lập Service và Repository. Hãy tiếp tục tạo CRUD.

Create

PostController -> PostService -> PostRepository

$this->postService->savePostData($data) phần này gọi hàm savePostData trong post service.

Trong post service, xác nhận dữ liệu. Nếu không có lỗi, $this->postRepository->save($data); – Gọi function save trong post repository để lưu dữ liệu trong database.

Nếu có lỗi, chẳng hạn như khi không nhập tiêu đề, thì điều này sẽ được hiển thị khi thực thi trong postman.

Read

  1. GetAllData
  1. GetById

Update

Delete

Kết luận

Hy vọng chỉ cần nhìn vào ảnh chụp màn hình, bạn đã có thể thấy mô hình và sau đó bạn có thể dễ dàng hiểu tại sao laravel service-repository pattern lại clear và bền vững.

Nguồn

Nguồn: viblo.asia

Bài viết liên quan

Thay đổi Package Name của Android Studio dể dàng với plugin APR

Nếu bạn đang gặp khó khăn hoặc bế tắc trong việc thay đổi package name trong And

Lỗi không Update Meta_Value Khi thay thế hình ảnh cũ bằng hình ảnh mới trong WordPress

Mã dưới đây hoạt động tốt có 1 lỗi không update được postmeta ” meta_key=

Bài 1 – React Native DevOps các khái niệm và các cài đặt căn bản

Hướng dẫn setup jenkins agent để bắt đầu build mobile bằng jenkins cho devloper an t

Chuyển đổi từ monolith sang microservices qua ví dụ

1. Why microservices? Microservices là kiến trúc hệ thống phần mềm hướng dịch vụ,