1. Giới thiệu về MVC
1.1. Định nghĩa
MVC là một mô hình thiết kế, giúp bạn tổ chức code theo từng phần độc lập với nhau, và các phần tương tác với nhau theo một cách nhất định.
1.2. Cách mà mô hình hoạt động
Trình duyệt gửi một request lên server, server nhận được request sẽ phân tích và gửi dữ liệu vào controller dựa vào router điều hướng. Trong vài trường hợp thì controller sẽ render luôn ra view [một template được chuyển thành HTML] và gửi trả về cho trình duyệt. Nhưng thông thường, cho các trang web động, controller sẽ tương tác với một model [đại diện cho một phần tử ví dụ như Post, chịu trách nhiệm giao tiếp với cơ sở dữ liệu]. Sau khi gọi vào model, controller sẽ render view với dữ liệu lấy được và trả kết quả về cho trình duyệt để hiển thị.
2. Xây dựng ứng dụng
2.1. Cấu trúc thư mục
|-- demo_mvc
|-- assets
|-- fonts
|-- images
|-- javascripts
|-- stylesheets
|-- controllers
|-- models
|-- views
|-- layouts
|-- application.php
|-- connection.php
|-- index.php
|-- routes.php
Giải thích về cấu trúc thư mục trên:
- Thư mục
demo_mvc
là thư mục chứa project. - Thư mục
assets
gồm các file font chữ, hình ảnh, javascript, css... - Thư mục
controlers
chứa các file định nghĩa các lớp controller, có các hàm trong đó tương tác với model và gọi ra view để trả về cho người dùng. - Thư mục
models
chứa các file định nghĩa các lớp model, chịu trách nhiệm thao tác với CSDL. - Thư mục
views
chứa thư mụclayouts
chứa template hiển thị chung của trang web trong fileapplication.php
- Còn các file sẽ được giới thiệu rõ hơn ở các phần bên dưới.
2.2. Cơ sở dữ liệu
Trước hết, hãy tạo một cơ sở dữ liệu đơn giản có tên là demo_mvc có bảng posts với 3 trường: id [INT PRIMARY auto_increment], title [VARCHAR 255], content [TEXT] Bắt tay vào code thôi nào.
2.3. Điều hướng luồng dữ liệu
Đầu tiên, tạo file index.php
với nội dung như sau:
# index.php