• Privacy Policy
Chia sẻ kiến thức công nghệ
  • Home
  • Lập trình
  • Chia sẻ
  • Blog
No Result
View All Result
  • Home
  • Lập trình
  • Chia sẻ
  • Blog
No Result
View All Result
Duy PT Blog
No Result
View All Result
Home Lập trình

Laravel và mẫu thiết kế HMVC

Duy Solo by Duy Solo
May 13, 2022
in Lập trình
Reading Time: 4 mins read
A A
Share on FacebookShare on Twitter

Mục lục

  1. Vậy thì HMVC là cái quỷ gì?
  2. Một số packages hỗ trợ triển khai HMVC trên Laravel
  3. Tổng kết

Là một lập trình viên, hầu như trong chúng ta không ai là không biết về mô hình MVC. Đây cũng là một mô hình được áp dụng trong hầu hết các ứng dụng web. Các framework PHP phổ biến hiện nay đều đang áp dụng mô hình này.

MVC là từ viết tắt của “Model View Controller”. Nói một cách đơn giản hơn, nó là mô hình phân bố workflow của ứng dụng thành ba phần có nhiệm vụ riêng biệt và tách rời với những phần còn lại.

  • Model: là nơi chứa những nghiệp vụ tương tác với dữ liệu hoặc hệ quản trị cơ sở dữ liệu (MySQL, SQL Server… ); nó sẽ bao gồm các lớp xử lý nghiệp vụ như kết nối database, truy vấn – thêm – xóa – sửa dữ liệu…
  • View: là nơi chứa những giao diện mà người dùng có thể nhìn thấy và thao tác, như các button, form, menu, hình ảnh… Nó đảm nhận nhiệm vụ hiển thị dữ liệu và giúp người dùng tương tác với hệ thống thông qua Controller.
  • Controller: là nơi tiếp nhận những yêu cầu xử lý được gửi từ người dùng, nó sẽ gồm các lớp hoặc hàm xử lý business logic giúp lấy hoặc gửi các dữ liệu cần thiết qua các lớp Model và hiển thị dữ liệu đó ra cho người dùng nhờ lớp View.

Sự tương tác giữa các thành phần:

  • Controller tương tác qua lại với View và Model.
  • View và Model không tương tác trực tiếp với nhau mà chỉ thông qua Controller.

Vậy thì HMVC là cái quỷ gì?

HMVC (Hierarchical Model – View – Controller) là một biến thể được đản sinh từ mô hình MVC (Model – View – Controller) truyền thống, bằng cách chia nhỏ mã nguồn thành các cụm MVC nhỏ hơn (tên tiếng Anh của cụm này là MVC triads) đảm nhận các tác vụ riêng biệt, từ đó giải quyết các vấn đề về khả năng mở rộng để có thể đáp ứng được tốc độ phát triển mà không phải thay đổi kiến trúc chính của hệ thống.

Có một lợi ích to lớn của HMVC đó chính là widget hóa các cấu trúc nội dung khi mà điều này chưa được giải quyết triệt để ở mô hình MVC truyền thống. Thực ra bạn hoàn toàn có thể tạo nên các widgets của riêng mình với sự hỗ trợ từ Laravel thông qua View Composer, nhưng nó khá là khó quản lí khi dự án phát triển ngày một lớn dần.

Việc mô đun hóa làm giảm tối đa sự phụ thuộc lẫn nhau giữa các thành phần của ứng dụng, code trở nên sạch sẽ và rõ ràng, từ đó đem lại khả năng tái sử dụng tuyệt vời và việc bảo trì trở nên dễ dàng hơn so với MVC truyền thống.

Bạn cũng có thể tham khảo thêm về một ví dụ đơn giản với kiến trúc HMVC trên nền tảng Laravel trong phần 1 của series https://duypt.dev/laravel-va-giai-phap-kien-truc-cho-ung-dung-quy-mo-lon.

Một số packages hỗ trợ triển khai HMVC trên Laravel

  • Laravel Modules (khuyên dùng nếu bạn muốn sử dụng package ngoài)
  • Caffeinated Modules
  • Laravel 5 Modules

Tổng kết

Kết thúc bài viết, bạn chắc hẳn đã có những nhận định riêng cho mình về hai kiến trúc MVC và HMVC.

Bài viết sau mình sẽ hướng dẫn các bạn xây dựng một ứng dụng HMVC trên nền tảng Laravel step by step. Bạn cũng có thể sử dụng các package ngoài nhưng mình nghĩ việc tự xây dựng nên một kiến trúc từ đầu đến cuối sẽ giúp ích rất nhiều cho bạn. Tin mình đi 😀

Tags: architecturehmvclaravellarge-scale

Related Posts

Hướng dẫn cài đặt LEMP trên CentOS Stream 9
Lập trình

Hướng dẫn cài đặt LEMP trên CentOS Stream 9

by Duy Solo
May 24, 2022
0

Bài viết này sẽ hướng dẫn các bạn cài đặt LEMP stack trên CentOS Stream 9 mới nhất trên Vultr...

Read more
Lập trình

Xóa một property của Object trong Javascript

by Duy Solo
April 24, 2022
0

Mình sẽ giới thiệu 2 cách để xóa một property trong Javascript Object. Một cách sử dụng mutable, một cách...

Read more
Higher order Functions là gì? Tại sao nên sử dụng chúng?
Lập trình

Higher order Functions là gì? Tại sao nên sử dụng chúng?

by Duy Solo
April 15, 2022
0

Đây là một khái niệm rất quan trọng trong Functional Programming. Ở đây mình sẽ cho ví dụ dựa trên...

Read more
Lập trình

Trello Clone – phần 1 – Styled Components

by Duy Solo
August 28, 2021
0

Styled-Components là một thư viện giúp bạn tổ chức và quản lý styles trong các dự án sử dụng React...

Read more
Load More
Next Post

Những mẹo nhỏ khi làm việc với Laravel Eloquent

Repository Design Pattern và ứng dụng của nó trong Laravel

Discussion about this post

POPULAR POST

  • LocalStorage và Cookies – chọn cái nào để lưu JWT Tokens hiệu quả và an toàn?

    1136 shares
    Share 454 Tweet 284
  • Hướng dẫn reset trial cho các sản phẩm IntelliJ trên MacOS

    1038 shares
    Share 415 Tweet 260
  • Repository Design Pattern và ứng dụng của nó trong Laravel

    971 shares
    Share 388 Tweet 243
  • Decorators trong Typescript

    914 shares
    Share 366 Tweet 229
  • Các thư viện Date Pickers tốt nhất cho React

    769 shares
    Share 308 Tweet 192
Duy PT Blog

© 2021 Duy PT Blog

Liên kết

  • Lập trình
  • Chia sẻ
  • Blog
  • Privacy Policy

Theo dõi

No Result
View All Result
  • Home

© 2021 Duy PT Blog