PHP MVC là gì (tiếp tục)
Xem xét một ứng dụng mạng xã hội với trang người dùng.
Cấu trúc Model – View – Controller (MVC) thực thi giao diện người dùng.
Dòng làm việc là đơn giản: hành động người dùng đi đến controller từ view. Controller thông báo cho
Model. Theo đó, Model cập nhật Controller. Sau đó, Controller lại một lần nữa cập nhật trang user.
Ở đây, có sự chia tách logic ứng dụng khỏi tầng trình bày. Tự nhiên thì ứng dụng của bạn sẽ trở nên
linh động, mô đun hóa và sử dụng lại.
Hãy tưởng tượng ứng dụng mạng xã hội trên nơi bạn muốn xem một trang của người dùng. Bạn có thể click
một link cái trông như thế này:
https://example.com/home/index/username
Ở đây bạn có thể tưởng tượng rằng home là controller, index là phương pháp và trong khu vực
username bạn thậm chí có thể truyền một ID. Cái này khá đơn giản. và nó đưa bạn tới trang của người
dùng. Làm cách nào bạn có thể làm ứng dụng của bạn làm việc qua một MVC như vậy.
Như bạn có thể đoán, bạn sẽ nhận dữ liệu người dùng từ một cơ sở dữ liệu. Model xác định dữ liệu
nào ứng dụng của bạn nên chứa. Vì vậy, nó là công việc của model tương tác với CSDL. Bây giờ, CSDL
người dùng sẽ gia tăng, những thay đổi sẽ diễn ra và người dùng sẽ thực hiện cập nhật. Nếu trạng thái
của dữ liệu này thay đổi, Model sẽ thường thông báo cho View. Nếu logic khác được cần để kiểm soát
View, model thông báo cho Controller.
Với ứng dụng mạng xã hội. Model sẽ chỉ ra dữ liệu gì một vật danh sách nên chứa như first name. last
name, location (địa điểm)..vv..
Vai trò của Controller rất quan trọng. Nó chứa logic chương trình cái cập nhật Model và đôi khi View phản
ứng với nhập vào từ người dùng của ứng dụng. Ứng dụng có thể có form đầu vào để cho phép bạn
post hay edit (biên tập) hay xóa dữ liệu. Các hành động này yêu cầu Model sẽ phải cập nhật, nên
nhập vào sẽ được gửi tới Controller, cái sau đó hành động trên Model, và Model sau đó sẽ gửi dữ liệu
cập nhật tới View. Bây giờ, view này có thể được thao tác xử lí theo cách khác, bạn có thể sử dụng
cơ chế mẫu bố cục của bạn. Trong một vài trường hợp, Controller có thể xử lí những nhiệm vụ này
độc lập mà không cần cập nhật Model.
Được so sánh với chức năng của Model và Controller, dòng làm việc của View chứa các nhiệm vụ đơn giản.
Nó sẽ chỉ xác định danh sách được trình bày như thế nào tới người dùng khác. Nó cũng nhận dữ liệu từ
Model để hiển thị.