Tôi hiện đang trong quá trình phát triển khung công tác PHP 5.3 HMVC của riêng mình có tên là Alloy . Vì tôi được đầu tư rất nhiều vào và bán trên HMVC, tôi nghĩ rằng tôi có thể đưa ra một quan điểm khác, và có lẽ là một lời giải thích tốt hơn về lý do tại sao nên sử dụng HMVC và lợi ích mà nó mang lại.
Lợi ích thực tế lớn nhất của việc sử dụng kiến trúc HMVC là "phụ kiện hóa" các cấu trúc nội dung. Một ví dụ có thể là bình luận, xếp hạng, hiển thị nguồn cấp dữ liệu RSS hoặc blog hoặc hiển thị nội dung giỏ hàng cho một trang web thương mại điện tử. Nó thực chất là một phần nội dung cần được hiển thị trên nhiều trang và thậm chí có thể ở những nơi khác nhau, tùy thuộc vào ngữ cảnh của yêu cầu HTTP chính.
Các khung MVC truyền thống thường không cung cấp câu trả lời trực tiếp cho các loại cấu trúc nội dung này, vì vậy mọi người thường kết thúc việc sao chép và chuyển đổi bố cục, sử dụng trình trợ giúp tùy chỉnh, tạo cấu trúc widget hoặc tệp thư viện của riêng họ hoặc lấy dữ liệu không liên quan từ yêu cầu chính Bộ điều khiển để đẩy qua Chế độ xem và hiển thị một phần. Không có lựa chọn nào trong số này là các tùy chọn đặc biệt tốt, bởi vì trách nhiệm hiển thị một phần nội dung cụ thể hoặc tải dữ liệu cần thiết cuối cùng bị rò rỉ vào nhiều khu vực và bị trùng lặp ở những nơi nó được sử dụng.
HMVC, hay cụ thể là khả năng gửi các yêu cầu phụ đến Bộ điều khiển để xử lý các trách nhiệm này là giải pháp rõ ràng. Nếu bạn nghĩ về những gì bạn đang làm, nó phù hợp với cấu trúc Bộ điều khiển chính xác. Bạn cần tải một số dữ liệu về nhận xét và hiển thị chúng ở định dạng HTML. Vì vậy, bạn gửi yêu cầu tới Trình điều khiển nhận xét với một số thông số, nó tương tác với Mô hình, chọn Chế độ xem và Chế độ xem hiển thị nội dung. Sự khác biệt duy nhất là bạn muốn các bình luận được hiển thị nội tuyến, bên dưới bài viết blog mà người dùng đang xem thay vì trang bình luận đầy đủ hoàn toàn riêng biệt (mặc dù với cách tiếp cận HMVC, bạn thực sự có thể phục vụ cả yêu cầu bên trong và bên ngoài với cùng một bộ điều khiển và "giết hai con chim với một hòn đá ", như người ta vẫn nói). Về vấn đề này, HMVC thực sự chỉ là một sản phẩm phụ tự nhiên của việc phấn đấu tăng tính mô đun mã, khả năng sử dụng lại và duy trì sự phân tách tốt hơn các mối quan tâm. Đây là điểm bán hàng của HMVC.
Vì vậy, trong khi bài viết về TechPortal của Sam de Freyssinet về nhân rộng với HMVC rất thú vị để suy nghĩ, thì đó không phải là nơi mà 90% những người sử dụng khung HMVC sẽ nhận được lợi ích thực tế, hàng ngày từ nó.