Tìm hiểu về mô hình MVC mới của Joomla

Đăng ngày: 12 Tháng 1 2014
Đánh giá bài này
(0 bình chọn)
Tìm hiểu về mô hình MVC mới của Joomla Tìm hiểu về mô hình MVC mới của Joomla

Trong Joomla! CMS sắp tới, mô hình MVC mới sẽ đóng vai trò chủ đạo. Thông qua Summer Of Code của Google, tôi đã nắm bắt một số bước ban đầu cho dự án này.

Đôi chút về lịch sử MVC

Joomla! CMS là một hệ thống quản lý nội dung (CMS) nổi tiếng thế giới có sử dụng cấu trúc MVC (Model-View-Controller) để tạo ra các component. Mô hình này đã tồn tại từ lâu và cũng đã trải qua nhiều thay đổi để phù hợp với từng nhu cầu sử dụng riêng biệt. Gần đây các nhà phát triển Joomla! đã có ý tưởng làm cho cấu trúc này trở nên linh hoạt hơn để có thể đương đầu với những thách thức trong tương lai. Kết quả là mô hình MVC mới đã ra đời và được phát hành cùng với Joomla! CMS.

Bạn có thể tìm hiểu thêm về mô hình MVC tại đây.

Cái nhìn ban đầu về mô hình MVC mới

Nếu bạn chưa quen phát triển Joomla! Component, tốt hơn bạn nên một lần thực hiện cấu trúc MVC hiện có. Đối với những người đã từng phát triển component, nhận diện sự khác biệt của 2 mô hình này không có gì quá khó khăn. Bài viết này sẽ hướng dẫn cho bạn từng thay đổi một cách chi tiết.

Cấu trúc thư mục mới

Tìm hiểu về mô hình MVC mới của Joomla

Nó gần giống với cấu trúc MVC hiện tại. Nhưng tên thư mục sẽ ở hình thức số ít. Vì vậy, trong mô hình MVC mới, bạn sẽ sử dụng tên thư mục số ít.

Tập tin riêng lẻ cho controller

Tìm hiểu về mô hình MVC mới của Joomla

Đây là một thay đổi quan trọng trong MVC mới, nó có tập tin riêng biệt cho mỗi controller và mang lại nhiều lợi thế đặc biệt. Mô hình MVC hiện tại chỉ có một tập tin chứa tất cả các tác vụ kiểm soát mà thôi.

Phương thức xử lý riêng lẻ cho controller

Tìm hiểu về mô hình MVC mới của Joomla

Cấu trúc bên trong controller rất đơn giản. Nó chỉ có một phương thức xử lý gọi là "execute - thực thi". Tất cả chức năng đầy đủ của controller được tổng hợp trong phương thức "execute". Sự thay đổi này giúp controller dễ nắm bắt và truy cập hơn.

Những thư viện mới trong MVC

Tìm hiểu về mô hình MVC mới của Joomla

Đối với mô hình MVC mới, thư mục libraries/Joomla chứa 3 thư mục con mới đó là controller, model và view. Mỗi thư mục chứa lớp Base tương ứng, được sử dụng trong việc thực thi các lớp controller, model và view của component. Hiện nay tất cả chúng đều có trong phiên bản Joomla! CMS mới nhất. Các lớp cấp thư viện như này là nền tảng cho bất kỳ component nào của mô hình MVC mới. Ưu điểm chính của nó là giảm thiểu mã dư thừa trong các lớp Legacy đang được sử dụng trong mô hình MVC hiện tại.

Trải qua thời gian, các lớp tái sử dụng sẽ được bổ sung vào thư viện. Bạn có thể nhìn thấy một số ví dụ về các controller có thể tái sử dụng trong thư mục controller của com_config hoặc thư mục cms của com_cache-com_checkin. Nhờ có chức năng tự động load, trong một số trường hợp component sẽ không đòi hỏi bất kỳ controller nào của riêng mình hoặc không đòi hỏi một component nào trên mỗi lớp. Ngoài ra, các lớp View cũng trở nên đơn giản hơn, các lớp Model thì tương tự như trong mô hình MVC hiện có. Trong MVC mới, lớp Model không cần phải trực thuộc lớp JModelBase, nhưng nó cũng có thể là một lớp bảng tùy thuộc vào yêu cầu.

Lợi thế của mô hình MVC mới

Trong quá trình sáng tạo Joomla! Components sử dụng mô hình MVC mới, bạn sẽ cảm thấy một số thực trạng sau đây (giống như các nhà phát triển).

Tìm hiểu về mô hình MVC mới của Joomla

Tại thời điểm này, các components sau đây đã được chuyển vào mô hình MVC mới và đang chờ đợi trong hàng Pull Request.

-  com_config
-  com_checkin
-  com_cache

Quản lý Front-End

Tôi đã chỉ cho bạn thấy tầm quan trọng của mô hình MVC mới. Bây giờ bạn có thể nhìn thấy một số thành tựu đặc biệt thông qua sự thay đổi này. Quản lý front-end là một trong những thứ tôi đã thực hiện với mô hình MVC mới. Thông qua quản lý front-end, người dùng Joomla! CMS sẽ có cơ hội thực hiện nhiều thay đổi khác nhau mà không cần phải truy cập vào giao diện back-end (giao diện quản trị dành cho quản trị viên). Tôi tin yếu tố này sẽ thu hút những người mới sử dụng lần đầu, bởi vì back-end chứa các panel cấu hình rất phức tạp.

Bước ban đầu, tôi đã có thể tạo ra giao diện quản lý front-end thành công cho Global Configuration và Template Manager. Sau đây là một số tính năng được cung cấp trong các component của giao diện quản lý front-end:

- Thay đổi tên website
- Thay đổi logo website
- Thay đổi màu sắc template
- Thay đổi màu nền
- Thiết lập chế độ online/ offline cho website
- Thêm thẻ meta description

Trong tương lai, chắc chắn nhiều tính năng hơn nữa sẽ được bổ sung vào giao diện quản lý front-end.

Các nhà phát triển nói gì

Elin Waring, Cựu Chủ tịch của Open Source Matters đã nói: "Mô hình MVC mới cho phép chúng ta đơn giản hóa code và tăng tính linh hoạt của các ứng dụng, đặc biệt về khía cạnh cung cấp dịch vụ web cũng như html. Khi bạn kết hợp nó với JapplicationWeb, nó sẽ trở nên vô cùng mạnh mẽ. Một số lớp MVC được chia sẻ trong CMS sẽ giúp cho các ứng dụng và phần mở rộng trở nên dễ dàng hơn."

Michael Babker, Lãnh đạo nhóm sản xuất Joomla! thì lại cho biết: "Nói về giao diện của mô hình MVC mới, so với mô hình MVC 'legacy' được thiết kế để hỗ trợ CMS, giao diện mới cung cấp mức độ linh hoạt cao hơn cho các nhà phát triển. Ứng dụng theo dõi vấn đề là một ví dụ tuyệt vời về cách bạn sử dụng các giao diện và bộ định tuyến web để giữ code được dễ dàng như trong thực tế."

Trong khi đó, thành viên HĐQT kiêm thành viên nhóm code của Open Source Matters - Ofer Cohen đã phát biểu như sau: "Mô hình MVC mới trong Joomla sẽ làm cho những người làm dev cảm thấy dễ dàng hơn. Dự án Joomla này còn một số bước chưa hoàn thiện, tuy nhiên khi hoàn thành nó sẽ giúp cho Joomla Framework trở nên sống động. Mô hình MVC mới giúp cho quá trình xây dựng các ứng dụng linh hoạt trở nên nhanh chóng, giao diện front-end mới cho config chính là bằng chứng của điều đó."

Bạn có thể đóng góp cho mô hình mới bằng cách nào?

Nếu quan tâm đến mô hình MVC mới, tất nhiên bạn cũng có thể đóng góp cho nó. Chuyển đổi sang sử dụng mô hình này chỉ là một nửa của quá trình, bạn cần phải làm nhiều bước hơn nữa để thu về những lợi ích đầy đủ của cấu trúc này. Dưới đây là những hình thức đóng góp mà người dùng có thể thực hiện:

- Thêm thử nghiệm cho các component của MVC mới (bạn có thể bắt đầu bằng cách tìm hiểu về mô hình này.)
- Chuyển đổi component back-end sang mô hình MVC mới
- Chuyển đổi component front -end sang mô hình MVC mới
- Viết phần mở rộng của riêng mình, thích nghi với một số packages khác trong các thư viện không hoạt động hoàn hảo với mô hình mới này (ví dụ: com_menus cần một bản cập nhật nhỏ để chạy với style mới.)

Xuân Trung

Gửi bình luận

Hãy nhập đầy đủ các thông tin yêu cầu trong ô có dấu (*). Không được phép sử dụng mã HTML.

LIKE để ủng hộ bạn nhé!

 

Tham gia diễn đàn seo hàng đầu Việt Nam

Has no content to show!