Mô Hình MVC

Sau route thì một phần rất quan trọng khác được sử dụng rất thường xuyên trong Laravel Framework là mô hình tổ chức source code MVC. Mô hình MVC là một kiểu kiến trúc giúp cho việc tổ chức source code trở lên có hệ thống.

Thực tế thì để hiểu mô hình MVC không khó hiểu. Ở đây thay vì định nghĩa tôi sẽ dùng một ví dụ thực tiễn để bạn thuận tiện tiếp thu kiến thức và kỹ năng. Và một ví dụ đơn thuần nhất là chiếc Tivi trong nhà bạn. Người xem mở Tivi lên sử dụng remote. Ở đây remote đóng vai trò như một Controller giúp để lựa chọn kênh nào để xem. Sau khi người xem bấm chọn kênh, Tivi sẽ gửi nhu yếu tới đài truyền hình tương ứng với kênh đã chọn. Ở đây những đài truyền hình đóng vai trò như một Model, những nhà đài này sẽ truyền tài liệu ( hình ảnh, âm thanh ) về sau khi nhận được nhu yếu. Khi nhận được tài liệu trả về này thì Tivi sẽ phát chương trình cho người xem thông qua loa và màn hình hiển thị. Loa và màn hình hiển thị ở đây đóng vai trò của một View .

Bây giờ chúng ta cùng tìm hiểu một ví dụ cụ thể trong Laravel để hiểu về mô hình này. Thêm câu lệnh sau vào cuối file routes.php:

Route::get('/welcome', 'HomeController@showWelcome');

Câu lệnh trên dùng đểroute (hướng) các request với URL có dạng /welcome về HomeController và tiếp sau đó sẽ tiếp tục được xử lý trong method welcome. Mở file HomeController.php bạn sẽ thấy có một đoạn mã như sau:

Bạn đang đọc: Mô Hình MVC

public function showWelcome()
{
    return View::make('hello');
}

Đoạn mã trên tương tự như hàm callback trongroutes.phptrước khi chúng ta thay đổi nội dung của nó. Ở đây câu lệnh View::make('hello') sẽ trả về nội dung có trong file hello.blade.php. File này có một dòng lệnh như sau:

...

You have arrived.

...

Bây giờ trên trình duyệt nhập vào địa chỉ http://laravelapp.dev/welcome và bấm enter. Trình duyệt sẽ hiển thị hình ảnh logo của Laravel và một dòng tiêu đề với nội dung You have arrived.:

Laravel MVC

Tổng quát quá trình trên, đầu tiên routes.php thực hiện xong nhiệm vụ chuyển việc xử lý request có dạng http://laravelapp.dev/welcome về method welcome trongHomeController. HomeController kiểm soát quá trình thực thi của ứng dụng. Ở đây nó trả về nội dung của file hello.blade.php. Và hello.blade.php đóng vai trò của một View khi nó chịu trách nhiệm trình bày thông tin cho người dùng.

Trong tăng trưởng ứng dụng web, mô hình MVC được hiển như sau :

  • Controller: Kiểm soát luồng thực thi của ứng dụng. Dựa trên yêu cầu của người dùng Controller sẽ xác định luồng thực thi tiếp theo.
  • Model: Xử lý việc trả về dữ liệu khi nhận được yêu cầu từ Controller (nếu có) và trả thông tin về cho Controller.
  • View: Controller sau khi nhận được thông tin trả về từ Model nó sẽ trả về cho View. View dựa trên thông tin trả về sẽ quy định cách hiển thị thông tin như thế nào.

Chúng ta sẽ từng bước tìm hiểu và khám phá những thành phần này bằng ví dụ đơn cử trong những bài học kinh nghiệm tiếp theo .