Ứng dụng mô hình MVC Joomla

Một phần của tài liệu Nghiên cứu Joomla và xây dựng website tin tức khoa công nghệ thông tin theo mô hình MVC Joomla (Trang 50)

3.1. MVC là gì?

 MVC (Model-View-Controller) là một mẫu thiết kế phần mềm được dùng để tổ chức các đoạn mã theo cách mà việc xử lý dữ liệu và biểu diễn dữ liệu tách rời nhau.

 MVC là một bước tiến nâng cao trong kỹ thuật lập trình với mục đích tổ chức và hệ thống lại các đoạn mã chuyên nghiệp hơn giúp cho việc truy xuất, tái sử dụng và duy trì mã dễ dàng.

 Điều này giúp cho việc định dạng hoặc tùy biến lại giao diện (quá trình tương tác với người dùng) mà không cần phải lập trình lại việc xử lý dữ liệu.

3.2. Kiến trúc của mô hình MVC

a. Mô hình MVC gồm Model - View – Controller  Model

• Là lớp quản lý tất cả việc truy xuất dữ liệu vào CSDL, bao gồm cả việc thêm, xoá, sửa… Chính vì thế khi thay đổi 1 hệ quản trị CSDL khác, người ta chỉ cần thay đổi lớp Model này. Đây chính là lợi điểm của mô hình MVC – tính năng động.

• Là thành phần của component đóng gói dữ liệu cho ứng dụng.

• Cung cấp các thủ tục để quản lý, thao tác dữ liệu (insert, delete, update).

• Nếu như ta thay đổi hệ quản trị cơ sở dữ liệu thì chỉ có duy nhất thành phần MODEL thay đổi.

 View

• Lớp này thể hiện ra ngoài cho người sử dụng giao diện của chương trình, trong lớp này người ta tuỳ biến (template engine) để có thể ra được nhiều kiểu giao diện khác nhau. Cũng giống lớp Model, khi muốn thay đổi giao diện, người ta chỉ thay đổi lớp View mà thôi.

• Là thành phần của component được sử dụng để trả lại dữ liệu từ Model theo cách phù hợp với tương tác.

• Thông thường trong các ứng dụng web, view là các trang HTLM – nơi để trả lại dữ liệu

Hình 21: Lớp View  Controller

• Lớp này được ví như chiếc xương sống của toàn bộ chương trình, việc xử lý các luồng request, gọi và thực hiện các lớp Model, View … Lớp này rất ít khi chỉnh sửa nếu ko có nhu cầu can thiệp vào hệ thống.

• Chịu trách nhiệm phản hồi các hành động của người dùng.

• Trong các ứng dụng web, một hành động của người dùng thông thường là một yêu cầu tải trang.

• Controller sẽ xác định yêu cầu gì được người dùng đưa ra và phản hồi thích hợp bằng việc yêu cầu Model tính toán dữ liệu phù hợp và chuyển từ Model vào View.

• Trong Joomla, mô hình MVC được hỗ trợ thông qua 3 lớp JModel, JView và Jcontroller.

b. Kiến trúc của mô hình MVC

Hình 22: kiến trúc mô hình MVC

3.3. Sự tương tác trong MVC

 Với MVC, mỗi yếu tố Model, View, Controller yêu cầu những dịch vụ của những yếu tố khác để giữ bản thân nó tiếp tục được cập nhật.

 Ví dụ, giả sử rằng chúng ta có một checkbox được check trong giao diện. Nếu Controller xác định người dùng thực hiện một click chuột, nó có thể gởi một thông

điệp cho View. Nếu View xác định rằng click xảy ra trên checkbox, nó gởi một thông điệp cho Controller.Controller cập nhật lại Model dựa trên sự kiện nhận được. Model sau khi cập nhật bản thân nó và thông báo một thông điệp, sẽ được nhận bởi View, để thông báo với View rằng nó phải cập nhật lại bản thân nó dựa trên trạng thái mới của Model. Tại đây có một vòng quay liên tục được lặp lại. Theo cách này, một Model không hạn chế một View hoặc Controller cụ thể, điều này cho phép chúng ta có nhiều View và Controller khác nhau thực thi một Model.

Hình 23: Tương tác trong mô hình MVC

3.3. Cấu trúc tổ chức thư mục của MVC component

 Tất cả các component nên được đặt trong một thư mục components.

• root components: dành cho người dùng thông thường.

• admin components: dành cho admin. (adsbygoogle = window.adsbygoogle || []).push({});

 Xét ví dụ về một component đơn giản: thu thập thông tin phản hồi có phân loại từ phía người dùng

Hình 24: Ví dụ về component đơn giản

• feedback.php là tập tin chính của component, nó nhận kiếm soát và xác định sự kiểm soát đến các controller khác.

• controller.phplà tập tin quản lý chính, phản hồi lại yêu cầu của user.

• controllers (folder)là thư mục chứa các điều khiển cần thiết của component.

¯ Category.php : quản lý phân loại feedback

¯ Feedback.php : quản lý feedback

• models (folder)là thư mục chứa tất cả các model cần thiết cho component

• views (folder)là thư mục chứa tất cả các view, các thư mục view. Bên trong các thư mục view này chứa file view và có thể có các thư mục template chứa các layout.

Một phần của tài liệu Nghiên cứu Joomla và xây dựng website tin tức khoa công nghệ thông tin theo mô hình MVC Joomla (Trang 50)