CakePHP hoạt động theo mô hình MVC. Mô hình này chia ứng dụng ra làm 3 phần chính: Model, View và Controller.
- Model: mô tả dữ liệu của ứng dụng. Trên Model, bạn có thể thiết lập các ràng buộc dữ liệu, quan hệ giữa các bảng. Ngoài ra, chúng ta còn có thể kiểm tra dữ liệu trước khi lưu vào CSDL tại Model.
- Controller: xử lý và điều hướng các yêu cầu của client. Tại Controller, bạn sẽ viết các hàm còn gọi là function. Các hàm này sẽ xử lý các yêu cầu của dữ liệu được gửi đến từ UML và Form. Hoặc là Controller sẽ thao tác thông qua Model và sau khi Controller xử lý xong các yêu cầu, thì nó sẽ gửi dữ liệu lên View.
- View: đảm nhận hiển thị thông tin được xử lý gởi từ Controller đến, và dữ liệu trên View sẽ hiển thị dưới dạng Html.
14
Cách thức hoạt động của mô hình MVC: Khi một client hay người dùng sử dụng trình duyệt web để gửi yêu cầu đến ứng dụng bằng cách nhấp vào đường link hoặc submit một Form trên View thì sẽ có một thành phần trong CakePHP gọi là Dispatcher, thành phần này sẽ kiểm tra để xác định Controller nào sẽ thực thi yêu cầu này và sẽ gởi yêu cầu đến Controller tương ứng. Khi yêu cầu được gởi đến Controller, thì hoặc là Controller sẽ xử lý ngay tại Controller, nó có thể so sánh dữ liệu hoặc kiểm tra dữ liệu được gởi đến hoặc sử dụng Model tương ứng để truy xuất vào trong CSDL. Sau khi lấy được dữ liệu, Controller sẽ qua một số bước xử lý nữa hoặc là đưa dữ liệu này ra View. View sẽ hiển thị dữ liệu nhận được lên trình duyệt web.
Để hiểu rõ hơn về mô hình MVC trong CakePHP, ta tiến hành tìm hiểu ví dụ sau:
Hình 2.7 – Ví dụ về mô hình MVC trong CakePHP Ta có liên kết http://abc.com/product/view/10
User A click vào 1 liên kết có dạng http://abc.com/products/view/10 thì : Trình duyệt sẽ gởi yêu cầu tới server
Bộ phận điều vận Dispatcher (một thành phần của CakePHP) kiểm tra phần tử
products/view/10 và gởi yêu cầu tới controller tương ứng
Tham số thứ 1: ta có Controllerproduct
Tham số thứ 2: ta có view là tên của 1 action của Controllerproduct sẽ được gọi để thực thi 1 hành động nào đó
Tham số thứ 3: ta có 1 giá trị 10, thông thường tham số thứ 3 có thể có hoặc không, tùy vào mục đích sử dụng, ở đây tôi có tham số = 10 để xem sản phẩm có id = 10
Mô tả bằng lời qua ví dụ trên:
Vào địa chỉ http://abc.com/ để xem sản phẩm có id=10
Tại sao lại dùng mô hình MVC?
Vì mô hình giúp chúng ta xây dựng ứng dụng nhanh chóng Dễ bảo trì, module hóa
MVC tách các tác vụ của ứng dụng thành các thành phần riêng lẻ, giúp ta dễ dàng thêm mới (hoặc thay đổi) các tính năng mà không làm ảnh hưởng đến các thành phần khác.
15