Mô hình phát triển phần mềm MVC là phương pháp thiết kế phần mềm bắt nguồn từ việc phát triển giao diện người dùng trong ngôn ngữ lập trình Smalltalk, đây là một trong những phương pháp thiết kế thành công nhất trong các phương pháp thiết kế hướng đối tượng. Hiện nay, MVC được dùng rộng rãi trong nhiều hệ thống phần mềm hướng đối tượng, bất kể được viết bằng ngôn ngữ hướng đối tượng nào.
MVC là viết tắt của Model-View-Controller, phương pháp thiết kế MVC là phương pháp chia nhỏ một ứng dụng thành nhiều lớp hoặc chia nhỏ phần giao diện người dùng của một ứng dụng thành ba thành phần chính là Model, View
Hình 3.4: Mô hình MVC đơn giản
- Model được hiểu là phần “Mô hình”: Là một đối tượng hoặc tập hợp các đối tượng biểu diễn cho phần dữ liệu của chương trình, ví dụ các dữ liệu được lưu trong cơ sở dữ liệu hay từ các hệ thống ứng dụng khác như hệ thống email.
- View được hiểu là phần “Hiển thị”: Là phần giao diện với người dùng, bao gồm việc hiện dữ liệu ra màn hình, cung cấp các trình đơn, nút bấm, hộp đối thoại, chọn lựa, ... để người dùng có thể thêm, xóa, sửa, tìm kiếm và làm các thao tác khác đối với dữ liệu trong hệ thống.
- Controller được hiểu là phần “Điều khiển”: Là phần điều khiển toàn bộ logic về hoạt động của giao diện, tương tác với thao tác của người dùng từ chuột, bàn phím, các thiết bị ngoại vi khác và cập nhật, thao tác trên dữ liệu theo đầu vào nhận được và điều khiển việc chọn phần “Hiển thị” thích hợp để truyền dữ liệu tới người dùng.
Với phương pháp thiết kế này, các chức năng hiển thị, chức năng logic điều khiển và chức năng truy cập dữ liệu của chương trình được chia làm các phần tách biệt. PHP là một ngôn ngữ lập trình có hỗ trợ hướng đối tượng thuần túy nên việc áp dụng MVC vào các phần mềm viết bằng PHP rất dễ và hiển nhiên. Hệ quản trị nội dung Joomla được thiết kế hoàn toàn tuân theo mô hình MVC sử dụng ngôn ngữ lập trình PHP.