Bài 01 - MÔ HÌNH MVC TRONG PHP
MÔ HÌNH MVC TRONG PHP
Mô hình MVC cơ bản ở đây là viết tắt của 3 từ M – Model, V – View, C – Controller. Mô hình MVC này được áp dụng trong hầu hết các dự án, trang web và có thể nói là rất quen thuộc với dân lập trình. Mô hình MVC được có 3 lớp khác nhau nhưng lại tương tác với nhau, giúp chúng ta có thể nhìn vào mô hình này và thao tác xử lí nhanh chóng hơn. Để có thể nắm bắt rõ hơn, các bạn cùng xem bộ video về mô hình MVC dưới đây nhé.
Ở đây mình có chia thành 2 phần đó là mô hình MVC trong PHP cơ bản và mô hình MVC trong PHP nâng cao để các bạn tiện theo dõi.
1. Mô hình MVC trong PHP cơ bản
Giới thiệu về mô hình MVC
1. Mô hình MVC là gì ?
Mô hình MVC là viết tắt của Model – View- Controller. Trong đó Controller chính là trái tim của ứng dụng.
• Controller sẽ chịu trách nhiệm nhận các request được gửi lên từ người dùng, sau đó sẽ xử lý và điều hướng dữ liệu trả về
• View đảm nhận công việc đơn giản hơn, nó chỉ có một nhiệm vụ duy nhất là chứa mã giao diện hoặc nhận dữ liệu trả về từ Controller
• Model thì chịu trách nhiệm tương tác với CSDL, có thể là thực thi truy vấn thông thường hoặc trả về dữ liệu dạng đóng gói cho Controller xử lý và điều hướng
2. Cấu trúc của một ứng dụng MVC đơn giản
Ở những bài tới, chúng ta sẽ bắt đầu đi nghiên cứu từng thành phần một trong kiến trúc MVC như Model, View, Controller nhé.
Các bạn xem thêm các bài học về học mvc tại đây.
[ SOURCE CODE ]
• Code mẫu của bài viết này, các bạn vui lòng download ở đây Source code
Làm việc với Controller trong MVC
1. Chạy một ứng dụng theo kiểu PHP thuần
Chạy file index.php với nội dung code như sau:
1
2
3
Kết quả hiển thị
2. Chạy một ứng dụng theo kiểu MVC
Vào thư mục controllers tại file user.php với nội dung code như sau:
1
2
3
Sửa lại nội dung code của file chạy chính index.php như sau:
1
2
3
Kết quả hiển thị vẫn không thay đổi
Lúc này các bạn đã thấy ứng dụng của chúng ra bắt đầu có sự phân tách công việc rồi, file index.php chỉ có nhiệm vụ triệu gọi, còn xử lý lúc này là file user.php trong thư mục controller và file user.php này chính là một controller.
Tuy nhiên nếu như chúng ta cần tới một vài controller khác để xử lý nhiều công việc khác thì thế nào. Ví dụ nếu như trong thư mục controller ngoài file user.php để xử lý user (thành viên), chúng ta có thêm một file product để xử lý sản phẩm thì việc điều khiển các file này sẽ như thế nào
Trong thư mục controller tạo thêm một file product.php với nội dung code như sau:
1
2
3
Như vậy file chạy chính index.php muốn chạy được cả controller user và controller product một cách linh hoạt bất cứ khi nào cần thì code của nó phải được cập nhật lại như sau:
1
2
3
4
5
6
7
8
Bây giờ chúng ta thử chạy các controller thông qua file chạy chính xem kết quả như thế nào nhé
Trong thực tế các bạn biết, làm việc với User hay Product chúng ta phải thao tác với khá nhiều các công việc với chúng như thêm, sửa, xóa, liệt kê,… Đơn giản bây giờ chúng ta chỉ phân tích đối tượng User, nếu như muốn thao tác thêm, sửa, xóa thì chúng ta phải bổ sung cho nó các Controller khác để làm những điều này.
Bây giờ các bạn tiếp tục tạo thêm bốn Controller tương ứng cho các chức năng thêm thành viên (add_user.php), sửa thành viên (edit_user.php), xóa thành viên (del_user.php), danh sách thành viên (list_user.php) với nội dung code như sau:
add_user.php
1
2
3
edit_user.php
1
2
3
del_user.php
1
2
3
list_user.php
1
2
3
Và bây giờ nếu như Controller User muốn chạy được từng Controller của nó (add, edit, del, list) một cách linh hoạt thì chúng ta cần phải cập nhật lại nội dung code của User Controller trong file user.php như sau:
1
2
3
4
5
6
7
8
9
10
11
12
Bây giờ chúng ta sẽ chạy thử từng Controller một xem kết quả hiện thị như thế nào nhé
Các bạn xem thêm các bài học mvc cơ bản tại đây.
[ SOURCE CODE ]
• Code mẫu của bài viết này, các bạn vui lòng download ở đây Source code
Làm việc với View trong MVC
1. Khởi tạo View
Như các bạn đã biết Controller là nơi tiếp nhận request, xử lý và điều hướng dữ liệu, còn xuất dữ liệu không phải là nhiệm vụ của nó, mà là nhiệm vụ của View. Như vậy các bạn thấy ở bài trước, chúng ta đã tạo ra bốn Controller để hiển thị dữ liệu thêm, sửa, xóa, liệt kê cho nên bài này chúng ta cần tạo ra bốn View tương ứng để đảm nhận lại công việc này thay cho Controller nhé.
Các bạn vào thư mục views và tạo bốn file add_user_view.php, edit_user_view.php, del_user_view.php, list_user_view.php với nội dung code tương ứng như sau
add_user_view.php
1
2
3
edit_user_view.php
1
2
3
del_user_view.php
1
2
3
list_user_view.php
1
2
3
2. Gọi View vào Controller
Và đương nhiên các Controller Add, Edit, Del, List của chúng ta không còn phải xuất dữ liệu nữa mà nó chỉ việc gọi View tương ứng vào mà thôi. Và nội dung code tương ứng của các Controller đó như sau
add_user.php
1
2
3
edit_user.php
1
2
3
del_user.php
1
2
3
list_user.php
1
2
3
Bây giờ chúng ta sẽ chạy thử từng Controller một thì kết quả hiển thị cũng không có gì thay đổi, nhưng rõ ràng là chúng ta đã boc tách code ra từng file theo đúng với chức năng của nó và theo chuẩn MVC rồi.
[ SOURCE CODE ]
• Code mẫu của bài viết này, các bạn vui lòng download ở đây Source code
Làm việc với Model trong MVC
Bước 1: Tạo file kết nối tới CSDL
Các bạn vào thư mục library tạo file connect.php để kết nối đến CSDL. Nếu file nào cần tương tác với CSDL thì chúng ta sẽ sử dụng file connect này.
1
2
3
4
Bước 2: Tạo Model
Vào thư mục models tạo file list_user.php, file này sẽ có nhiệm vụ lọc ra danh sách các thành viên từ CSDL để phục vụ cho list_user Controller và list_user_view View.
1
2
3
4
Bước 3: Code xử lý mới cho list_user Controller
Cập nhật lại list_user Controller để nó gọi list_user Model vào sử dụng với nội dung code như sau:
1
2
3
4
Bước 4: Sử dụng kết nối
Chúng ta sẽ sử dụng kết nối ở file chạy chính index.php để tất cả các chứ năng con sẽ không phải kết nối riêng rẽ nữa
1
2
3
4
5
6
7
8
9
Bước 5: Đổ dữ liệu ra View
Đây la bước cuối cùng và chúng ta sẽ lặp dữ liệu từ Model trả về cho Controller ra View, và chúng ta cùng cập nhật nội dung code của file list_user_view.php như sau nhé.
1
2
3
4
5
6 '.$row['user_full'].'
'.$row['user_name'].'
';
}
?>
Nào hãy xem thử kết quả hiển thị trên trình duyệt web khi chúng ta chạy Controller list_user nhé
Vậy là các bạn đã hoàn thành một ứng dụng hiển thị dữ liệu đơn giản với bằng mô hình MVC rồi đấy. Các bạn hãy áp dụng những kiến thức của loạt bài về MVC này để tạo ra cho mình những ứng dụng lớn hơn (một hệ thống website hoàn chỉnh chẳng hạn)
Nếu có thời gian, tôi sẽ gặp lại cácn ạn ở loạt bài hướng dẫn kết hopwj MVC với OOP để có được những ứng dụng MVC phức tạp. Hẹn gặp lại các bạn ở những bài hướng dẫn tiếp theo, chúc các bạn học tập tôt !
[ SOURCE CODE ]
• Code mẫu của bài viết này, các bạn vui lòng download ở đây Source code
2. Mô hình MVC trong PHP nâng cao
Tổ chức cơ bản của một ứng dụng MVC
1