Các nội dung nghiên cứu,kết quả trong đề tài này là trung thực và chưa công bố dưới bất kỳ hình thức nào trước đây.Những số liệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét,
GIỚI THIỆU VỀ MÔ HÌNH MVC
Tổng quan giới thiệu về mô hình MVC
MVC là viết tắt của cụm từ “Model-View-Controller“ Đây là mô hình thiết kế sử dụng trong kỹ thuật phần mềm MVC là một mẫu kiến trúc phần mềm để tạo lập giao diện người dùng trên máy tính MVC chia thành ba phần được kết nối với nhau như tên gọi: Model (dữ liệu), View (giao diện) và Controller (bộ điều khiển) Đơn giản hơn, là mô hình này được chia thành 3 phần trong soure code
Mỗi phần đảm nhận vai trò và vai trò nhiệm vụ riêng biệt nhau và độc lập với nhau.
Figure 1: Mô hình kiến trúc MVC
Mô hình MVC gồm 3 loại chính là thành phần bên trong không thể thiếu khi áp dụng mô hình này:
Model: Là bộ phận có chức năng lưu trữ toàn bộ dữ liệu của ứng dụng và là cầu nối giữa 2 thành phần bên dưới là View và Controller Một model là dữ liệu được sử dụng bởi chương trình Đây có thể là cơ sở dữ liệu, hoặc file XML bình thường hay một đối tượng đơn giản Chẳng hạn như biểu tượng hay là một nhân vật trong game.
View: Đây là phần giao diện (thême) dành cho người sử dụng View là phương tiện hiển thị các đối tượng trong một ứng dụng Chẳng hạn như hiển thị một cửa sổ, nút hay văn bản trong một cửa sổ khác Nó bao gồm bất cứ thứ gì mà người dùng có thể nhìn thấy được.
Controller: Là bộ phận có nhiệm vụ xử lý các yêu cầu người dùng đưa đến thông quaView Một controller bao gồm cả Model và View Nó nhận input và thực hiện các update tương ứng.
Luồng xử lý trong MVC
Luồng xử lý trong của mô hình MVC, bạn có thể hình dung cụ thể và chi tiết qua từng bước dưới đây:
Khi một yêu cầu của từ máy khách (Client) gửi đến Server Thì bị Controller trong MVC chặn lại để xem đó là URL request hay sự kiện.
Sau đó, Controller xử lý input của user rồi giao tiếp với Model trong MVC.
Model chuẩn bị data và gửi lại cho Controller.
Cuối cùng, khi xử lý xong yêu cầu thì Controller gửi dữ liệu trở lại View và hiển thị cho người dùng trên trình duyệt.
Figure 2: Các luồng giao tiếp trong mô hình MVC Ở đây, View không giao tiếp trực tiếp với Model Sự tương tác giữa View vàModel sẽ chỉ được xử lý bởi Controller
Ưu và nhược điểm của mô hình MVC
1 Ưu điểm mô hình MVC
Mô hình MVC phù hợp với các dự án với các đội ngũ làm việc độc lập với nhau, như vậy các công việc đều có thể được thực hiện một cách linh hoạt
Như vậy, mô hình này nổi bật nhờ các ưu điểm sau:
Hỗ trợ quá trình phát triển nhanh chóng: Với đặc điểm hoạt động độc lập của từng thành phần, các lập trình viên có thể làm việc đồng thời trên từng bộ phận khác nhau của mô hình này MVC giúp bạn tiết kiệm rất nhiều thời gian.
Khả năng cung cấp đồng thời nhiều khung View: Với mô hình MVC, bạn có thể tạo ra đồng thời nhiều khung View cho Model.
Hỗ trợ các kỹ thuật không đồng bộ: MVC có thể hoạt động trên nền tảng
JavaScript Điều này có nghĩa là các ứng dụng MVC có thể hoạt động với các file PDF, các trình duyệt web cụ thể, và cả các widget máy tính
Dễ dàng theo tác chỉnh sửa: Bộ phận Model hoạt động tách biệt với View đồng nghĩa với việc bạn có thể đưa ra các thay đổi, chỉnh sửa hoặc cập nhật dễ dàng ở từng bộ phận
Giữ nguyên trạng thái data: Mô hình MVC truyền lại dữ liệu nhưng không định dạng lại dữ liệu Do đó, các dữ liệu này có thể được dùng lại cho các thay đổi sau này.
Hỗ trợ các nền tảng phát triển SEO: Với mô hình MVC, bạn có thể dễ dàng tạo ra các mã SEO URL để thu hút lượng truy cập đối với ứng dụng bất kỳ.
2 Nhược điểm mô hình MVC
Khó khăn trong quá trình điều hướng code: Điều hướng khung có thể phức tạp vì mô hình này bao gồm nhiều lớp và yêu cầu người dùng thích ứng với các tiêu chí phân tách của MVC.
Không thích hợp việc phát triển các ứng dụng nhỏ vì mô hình này yêu cầu bạn lưu trữ một số lượng lớn các file.
Nhiều khung hoạt động đồng thời: Việc phân tách một tính năng thành ba bộ phận khác nhau dễ dẫn đến hiện tượng phân tán Do đó, đòi hỏi các nhà phát triển phải duy trì tính nhất quán của nhiều bộ phận cùng một lúc.
Như vậy, MVC khuyến khích việc thực hành mã hóa và hỗ trợ khả năng mở rộng nhanh chóng Nếu mối quan tâm lớn nhất của bạn là bạn có thể xây dựng ứng dụng một cách nhanh chóng, dễ cập nhật, thì mô hình MVC chính là lựa chọn tốt nhất của bạn Nếu bạn quan tâm nhiều hơn đến hiệu suất và giữ những cấu trúc tệp ít phức tạp hơn, thì MVC có thể không phải là lựa chọn phù hợp.
Lý do nên áp dụng mô hình MVC
1 Cải thiện thời gian và quy trình lập trình Đây là điểm nổi bật nhất của mô hình MVC vì mô hình này giúp việc lập trình nhanh hơn bất kỳ mô hình nào khác Lí do là bởi nếu áp dụng mô hình MVC để sử dụng và lập trình trên bất kỳ ứng dụng web cụ thể nào, một lập trình viên có thể làm việc trên View cùng thời gian với một lập trình viên khác làm việc với Controller để xây dựng logic nghiệp vụ cho ứng dụng web đó.
Vậy nên, thời gian lập trình khi ứng dụng mô hình MVC có thể được hoàn thành nhanh gấp ba lần so với các mô hình lập trình khác.
2 Khả năng cung cấp nhiều chế độ view
Khi sử dụng mô hình MVC, người sử dụng có thể tạo nhiều View cho chỉ một mô hình Tuy nhiên, ngày nay, nhu cầu truy cập ứng dụng bằng nhiều cách khác nhau đang ngày càng tăng và trở nên phổ biến Vậy nên, việc sử dụng MVC để lập trình chắc chắn là một phương pháp tuyệt vời.
Ngoài ra, với giải pháp này, việc nhân bản các mã code rất hạn chế Lí do là bởi vì nó phân tách dữ liệu và logic nghiệp vụ khởi màn hình
3 Model trong mô hình MVC sẽ trả về dữ liệu mà không cần định dạng
MVC pattern có khả năng trả về các dữ liệu mà không cần áp dụng bất kỳ định dạng cụ thể nào Do đó, các thành phần giống nhau có thể được áp dụng trên bất kỳ giao diện nào.
Ví dụ điển hình để giải thích cho phần này chính là tất cả loại dữ liệu đều có thể được định dạng bằng HTML Hơn nữa, các dữ liệu này cũng có thể được định dạng bằng Macromedia Flash hay Dream Viewer
4 Nền tảng MVC than thiện và cải thiện SEO
Nền tảng MVC giúp phát triển các trang web trở nên thân thiện hơn với các bộ máy tìm kiếm Khi sử dụng nền tảng này, bạn có thể dễ dàng thay đổi và phát triển các URL để cải thiện SEO, từ đó tạo ra nhiều lượt truy cập hơn
Những ngôn ngữ lập trình phổ biến như JavaScript hay jQuery có thể được tích hợp với MVC Từ đó, việc phát triển nhiều ứng dụng web đa tính năng sẽ trở nên dễ dàng hơn với các lập trình viên.
5 Những sửa đổi trên website không ảnh hưởng đến toàn bộ MVC Đối với bất kỳ trang web nào, giao diện người dùng thường có xu hướng thay đổi theo thời gian Ví dụ rõ ràng nhất chính là các màu sắc, bố cục, font chữ hay được thường xuyên thay đổi để thích ứng theo người dùng Ngoài ra, với sự phổ biến của điện thoại thông minh hiện nay thì việc hỗ trợ các thiết bị di động là điều cần thiết.
Vậy nên, việc xuất hiện thêm một kiểu view mới trong MVC sẽ trở nên rất đơn giản bởi phần Model không phụ thuộc vào phần View Do đó, bạn có thể chỉnh sửa bất kỳ thay đổi nào trong Model thoải mái mà không lo ảnh hưởng đến toàn bộ kiến trúc website
Các kỹ năng cần thiết khi sử dụng MVC
Khi bạn đã hiểu MVC là gì, thì nó giúp ích cho bạn có được một kiến thức cần thiết và nó là một trong các kỹ năng cần thiết khi bạn làm lập trình Để sử dụng tốt mô hình kiến trúc này bạn cần có các kỹ năng kiến thức dưới đây:
Hiểu rõ về mô hình kiến trúc phần mềm (MVC)
Hiểu cách sử dụng framework
Có kiến thức cơ bản về lập trình hướng đối tượng
Có khả năng logic và hiển thị nội dung, đảm bảo được ràng Model và View độc lập với nhau
TÌM HIỂU VÀ XÂY DỰNG MỘT LARAVEL PROJECT
Tạo một larval project
Bước 1: Mở folder project trên Visual Studio Code Bấm Ctrl + ` để mở command, sử dụng dòng lệnh: composer create-project laravel/laravel [tên folder] để tạo project. Sau đó đợi chương trình cài đặt:
Figure 3: Trình cài đặt gói framework Laravel
Bước 2: cd vào folder project vừa tạo với dòng lệnh: php artisan serve
Figure 4: Khởi động app sau khi cài đặt
Bước 3: vào localhost:8000 hoặc 127.0.0.1:8000 để kiểm tra
Figure 5: View sau khi khởi chạy thành công
MVC trong Laravel
Figure 6: Các luồng xử lí data và giao tiếp trong MVC Container
Model là thành phần chịu trách nhiệm quản lý dữ liệu, nó lưu trữ và truy xuất thông tin từ cơ sở dữ liệu (như mysql, sql server, postresSQL,…), từ hệ thống file, từ các website khác (api, web service)… đồng thời chứa các logic được thực thi bởi ứng dụng.
View là thành phần chịu trách nhiệm hiển thị dữ liệu đã được truy xuất từ model theo một format nào đó theo ý đồ của lập trình viên View là nơi bạn viết code html, css, javascript và hiện dữ liệu.
Controller là thành phần làm nhiệm vụ xử lý nghiệp vụ, nó nhận request từ client.Trong controller, bạn gọi các hàm trong model để có dữ liệu và đưa dữ liệu đó cho các view để hiện dữ liệu.
Laravel Framework hỗ trợ lập trình theo mô hình MVC Controller là các class được lưu trong app/http/Controllers Mỗi controller là 1 class chứa các (hàm) action.
Cách thức hoạt động MVC trong Laravel như hình sau:
Figure 7: Cách thức hoạt động mô hình MVC trong Laravel
User tạo ra một yêu cầu với URL nào đó Laravel xác định “route” tương ứng với
URL mà user request và chuyển tới controller cần thiết hoặc có các xử lý tương ứng.
Controller trong Laravel
Ta có thể tạo controller bằng: php artisan make:controller TestController