• Bỏ qua primary navigation
  • Skip to main content
  • Bỏ qua primary sidebar

Thủ thuật thiết kế website

Chia sẻ kinh nghiệm thiết kế website

  • Trang chủ
  • Joomla
    • Thủ thuật Joomla
    • Joomla Extensions
    • Joomla Themes
  • WordPress
    • Thủ thuật WordPress
    • WordPress Plugins
    • WordPress Themes
  • PHP Framework
    • Codeigniter
    • Laravel
    • Laminas
  • App Developer
    • React Native
    • Flutter
  • SEO
  • Chia sẻ
  • Phần mềm
Bạn đang ở:Trang chủ / PHP Framework / Laravel / Tại sao lại sử dụng Laravel Service và Repository Pattern?

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

26/09/2024 - Administrator Để lại bình luận

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

image.png

Route

image.png

Model

image.png

Migration

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

php artisan migrate

image.png

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.image.pngGọ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.image.pngGọ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 -> PostRepositoryimage.png$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.image.pngimage.png

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.image.png

Read

  1. GetAllData

image.pngimage.pngimage.png

  1. GetById

image.pngimage.png

Update

image.pngimage.pngimage.png

Delete

image.pngimage.png

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.

0 0 đánh giá
Article Rating
Theo dõi
Đăng nhập
Thông báo của
guest
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận

Sidebar chính

LỜI NGỎ

Đây là blog cá nhân, cung cấp các thông tin, kiến thức và kinh nghiệm về lập trình và cuộc sống. Những bài viết được mình sưu tập từ nhiều nguồn, mọi chi tiết liên quan đến bản quyền xin vui lòng liên hệ qua email kairu2607@gmail.com ! Cám ơn rất nhiều.

Tìm kiếm

Thủ thuật Wordpress

T

Tạo trang chuyển hướng download cho WordPress

[flatsome ] Text Ticker (fade) For Top Bar In Flatsome Theme

[Flatsome] Text Ticker (Fade) for Top Bar in Flatsome Theme

Định Dạng ảnh Webp Là Gì ? Làm Thế Nào để Sử Dụng Webp Trên Wordpress 2024 Mới Nhất ?

Định dạng ảnh WebP là gì ? Làm thế nào để sử dụng WebP trên WordPress 2024 mới nhất ?

X

Xử Lý Lỗi Không Xem Được Giỏ Hàng Và Thanh Toán Woocommerce Website WordPress

Vì Sao Rank Math Vượt Trội – SEO WordPress 2023

Hướng Dẫn Ghi đè (override) Folder Inc Trong Child Theme Flatsome

Hướng dẫn ghi đè (override) folder INC trong child-theme Flatsome

Hướng Dẫn Quản Lý Trang Trong Website WordPress

Laravel

Một số câu hỏi câu hỏi phổ biến phỏng vấn tuyển dụng lập trình viên Laravel

Thiết kế cấu trúc folder HMVC cho Laravel

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

[Laravel 7] Tổ chức theo dạng Package/Module trong ứng dụng Laravel – P3: khai báo config, translation, helpers và migrations

[Laravel 7] Tổ chức theo dạng Package/Module trong ứng dụng Laravel – P2: Route và mô hình MVC

[Laravel 7] Tổ chức theo dạng Package/Module trong ứng dụng Laravel – P1: Giới thiệu và khởi tạo cấu trúc thư mục cơ bản

Codeigniter Framework

[CodeIgniter 4] Codeigniter 4 Remove Public and Index.php From URL

[CodeIgniter 4] How to upload Codeigniter 4 website on share hosting?

Sửa lỗi website Codeigniter 2.x không chạy được với PHP 7.x

[CodeIgniter 4] Sử dụng cURL trong CodeIgniter 4

[CodeIgniter 4] Sử dụng cache để tăng tốc website trong CodeIgniter 4

[CodeIgniter 4] Xử lý hình ảnh chuyên nghiệp trong CodeIgniter 4

[CodeIgniter 4] Hướng dẫn gửi mail trong CodeIgniter 4

Dịch vụ Thiết Kế Website

Phần mềm hay

Hướng dẫn chuyển đổi php version trong ~/.zshrc ở MacOs

Tim Hieu Ve He Dieu Hanh Macos 1

Sửa file Hosts trong hệ điều hành MacOS

Hướng dẫn sử dụng phần mềm putty trên Windows

Switching between multiple PHP versions on macOS

Byebye Edge Chromium/Microsoft Edge

Copyright © 2025 · Metro Pro on Genesis Framework · WordPress · Đăng nhập

wpDiscuz