MVC là gì?
Các tiêu chuẩn MVC cho Model-View-Control. Nó là một mẫu kiến trúc chia ứng dụng thành ba thành phần chính.
1. Mô hình giải quyết logic nghiệp vụ và các tương tác cơ sở dữ liệu
2. Bộ điều khiển điều phối các hoạt động giữa mô hình và khung nhìn
3. View chịu trách nhiệm trình bày dữ liệu
Sau đây là một số ưu điểm của mô hình kiến trúc MVC
- Khớp nối lỏng - các thành phần tồn tại và hoạt động độc lập với nhau.
- Tính linh hoạt - người ta có thể dễ dàng thực hiện các thay đổi đối với các thành phần riêng lẻ
- Tăng năng suất - nhiều người có thể làm việc trong dự án cùng một lúc. Các nhà phát triển front-end có thể làm việc trên các khung nhìn và bản trình bày trong khi các nhà phát triển phụ trợ có thể tập trung vào các mô hình và vì hệ thống được kết hợp lỏng lẻo nên nó hoạt động vào cuối ngày
Trong hướng dẫn này, bạn sẽ học:
- MVC là gì?
- Mô hình
- Bộ điều khiển
- Lượt xem
- Các khuôn khổ MVC hoạt động như thế nào?
- Bộ điều khiển CodeIgniter
- Mô hình CodeIgniter
Mô hình
Mô hình có nhiệm vụ tương tác với các nguồn dữ liệu. Đây thường là một cơ sở dữ liệu, nhưng nó cũng có thể là một dịch vụ cung cấp dữ liệu được yêu cầu. Nó cũng là một thực tế phổ biến để có logic nghiệp vụ trong các mô hình trái ngược với bộ điều khiển. Thực hành này thường được gọi là bộ điều khiển gầy mô hình béo.
Mô hình thường ghi dữ liệu vào cơ sở dữ liệu, cung cấp cơ chế chỉnh sửa và cập nhật, xóa dữ liệu. Trong một ứng dụng web hiện đại, các mô hình sử dụng các mẫu thiết kế truy cập dữ liệu chẳng hạn như bản ghi hoạt động để tương tác với cơ sở dữ liệu dễ dàng hơn.
Ví dụ: CodeIgniter sử dụng thư viện tích hợp Active Record để hỗ trợ các mô hình trong khi các khung công tác khác như Laravel sử dụng Eloquent Object Relational Mapper (ORM) để hỗ trợ truy cập dữ liệu.
Bộ điều khiển
Bộ điều khiển lắng nghe các yêu cầu đến tài nguyên từ người dùng. Nó hoạt động như trung gian giữa mô hình và khung nhìn và đôi khi cũng thực hiện một số quy tắc kinh doanh. Giả sử bộ điều khiển nhận được yêu cầu đăng ký người dùng trong cơ sở dữ liệu.
Bộ điều khiển có thể thực hiện xác thực dữ liệu trên những gì đã được gửi để đảm bảo rằng tất cả các thông số cần thiết đã được gửi. Nếu thiếu điều gì đó, người dùng được chuyển hướng đến trang đăng ký với thông báo lỗi thích hợp được hiển thị. Người kiểm soát cũng có thể yêu cầu mô hình thực hiện xác thực nhiều hơn bằng cách kiểm tra xem địa chỉ email đã gửi đã tồn tại hay chưa. Nếu tất cả các quy tắc xác thực được thông qua thì bộ điều khiển sẽ gửi dữ liệu đến mô hình để xử lý và chờ phản hồi.
Khi mô hình đã xử lý thông tin và trả về phản hồi tích cực, bộ điều khiển sẽ tải chế độ xem thích hợp và chuyển dữ liệu trả về từ mô hình dưới dạng tham số.
Lượt xem
Chế độ xem liên quan đến dữ liệu được trình bày cho người dùng cuối. Trong các ứng dụng web, dạng xem thường chứa HTML, CSS và JavaScript tùy chọn. Chế độ xem chứa mã lập trình tối thiểu. Mã chứa trong các khung nhìn thường được sử dụng để lặp qua các bộ sưu tập dữ liệu nhận được dưới dạng tham số từ mô hình hoặc chức năng trợ giúp để dọn dẹp dữ liệu hoặc tạo liên kết để chỉnh sửa bản ghi. Hầu hết các ứng dụng web hiện đại thường sử dụng các công cụ tạo khuôn mẫu xác định cú pháp của riêng chúng, giống như mã giả hơn và các nhà thiết kế có thể dễ dàng hiểu được. Khi làm việc với CodeIgniter, thông thường là sử dụng các thẻ PHP ngắn và cấu trúc điều khiển. Để hiển thị nội dung nào đó trong CodeIgniter, người ta có thể sử dụng đoạn mã sau
Như trái ngược với
Cấu trúc điều khiển thường được viết như sau
Như bạn có thể thấy từ ví dụ trên, chế độ xem sẽ sử dụng kết hợp PHP và HTML thay vì bao quanh mọi thứ bằng mã PHP thuần túy.
Các khuôn khổ MVC hoạt động như thế nào?
Hình ảnh sau đây cho thấy các hoạt động của khuôn khổ MVC
Một bộ điều khiển nhận yêu cầu từ người dùng, tương tác với mô hình cơ sở dữ liệu nếu cần, sau đó trả kết quả trở lại trình duyệt dưới dạng mã HTML mà trình duyệt đã diễn giải thành định dạng mà con người có thể đọc được và hiển thị cho người dùng.
Bộ điều khiển CodeIgniter
Bây giờ chúng ta hãy phân tích những gì vừa xảy ra khi chúng tôi tải URL ở trên vào trình duyệt web.
Mở tệp ứng dụng / bộ điều khiển nằm trong bộ điều khiển Welcome.php
Bạn sẽ có thể thấy đoạn mã sau
load->view('welcome_message');}}
ĐÂY,
- đã xác định ('BASEPATH') HOẶC thoát ('Không cho phép truy cập tập lệnh trực tiếp'); ngăn truy cập trực tiếp vào bộ điều khiển nếu yêu cầu không đến qua index.php. điều này là vì mục đích bảo mật.
- lớp Welcome mở rộng CI_Controller {…} xác định lớp bộ điều khiển Welcome và mở rộng lớp cha CI_Controller
- public function index () {…} xác định phương thức chỉ mục phản hồi URL http: // localhost: 3000
- $ this-> load-> view ('welcome_message'); tải chế độ xem welcome_message nằm trong thư mục ứng dụng / chế độ xem
Bây giờ chúng tôi sẽ cập nhật phương pháp chỉ mục như sau
public function index(){$this->load->model('customers_model');$data['customer'] = $this->customers_model->get_customer(3);$this->load->view('welcome_message',$data);}
ĐÂY,
- $ this-> load-> model ('customer_model'); tải mô hình của khách hàng.
- $ data ['customer'] = $ this-> customer_model-> get_customer (3); gọi phương thức get_customer của customer_model và chuyển vào tham số 3. Trong ví dụ này, chúng tôi đã mã hóa giá trị cứng nhưng trong các ứng dụng đời thực, đây sẽ là một tham số từ URI.
- $ this-> load-> view ('welcome_message', $ data); tải chế độ xem welcome_message và chuyển biến $ data vào chế độ xem
Mô hình CodeIgniter
Bây giờ hãy tạo chế độ xem mà chúng ta đã tham chiếu trong đoạn mã trên. Để đơn giản, mô hình của chúng tôi sẽ không tương tác với cơ sở dữ liệu nhưng sẽ trả về một bản ghi khách hàng tĩnh. Chúng tôi sẽ làm việc với cơ sở dữ liệu trong các bài hướng dẫn tiếp theo.
Tạo một tệp Customer_model.php trong ứng dụng / mô hình
Thêm mã sau
ĐÂY,
- class Customer_model mở rộng CI_Model {…} xác định mô hình Customer_model mở rộng CI_Model.
- public function get_customer ($ id) {…} xác định phương thức get customer dựa trên id khách hàng
- $ data […] xác định các giá trị tĩnh của khách hàng hư cấu của chúng tôi. Đây phải là một hàng được trả về từ cơ sở dữ liệu.
- trả về dữ liệu $; trả về dữ liệu khách hàng.
Đó là, nó cho mô hình của chúng tôi. Bây giờ hãy sửa đổi chế độ xem welcome_message
Mở welcome_message.php ở
application/views/welcome_message.php
Thay thế mã bằng mã sau
CodeIgniter MVC Basics Customer Details Card
Customer ID :
First Name :
Last Name :
Address :
Lưu các thay đổi
Tải URL sau vào trình duyệt web
http: // localhost: 3000 /
Bạn sẽ có thể nhìn thấy thẻ khách hàng như trong hình dưới đây
Tóm lược
- MVC là một mẫu kiến trúc chia ứng dụng thành ba thành phần chính
- Mô hình chịu trách nhiệm tương tác với các nguồn dữ liệu
- Bộ điều khiển lắng nghe các yêu cầu đến tài nguyên từ người dùng
- Trong các ứng dụng web, dạng xem thường chứa HTML, CSS và JavaScript tùy chọn
- Một bộ điều khiển nhận yêu cầu từ người dùng, tương tác với mô hình cơ sở dữ liệu nếu cần, sau đó trả kết quả trở lại trình duyệt dưới dạng mã HTML