Chế độ xem trong PHP là gì?
Phiên PHP được sử dụng để lưu trữ dữ liệu trên máy chủ chứ không phải máy tính của người dùng. Số nhận dạng phiên hoặc SID là các số duy nhất được sử dụng để xác định mọi người dùng trong môi trường dựa trên phiên. SID được sử dụng để liên kết người dùng với thông tin của anh ấy trên máy chủ như bài đăng, email, v.v. Bạn có thể tìm hiểu chi tiết về session trong bài viết PHP. phiên Show Ghi chú. các mẫu lấy cảm hứng từ MVC và MVC là các cấu trúc nâng cao. Chúng có nghĩa là được sử dụng trong các cơ sở mã nơi mã hướng đối tượng thông thường (tuân theo SOLID và các hướng dẫn khác) bắt đầu trở nên không thể quản lý được. Bằng cách giới thiệu mẫu này, bạn sẽ áp đặt các ràng buộc bổ sung, sau đó cho phép bạn chứa các ứng dụng rất phức tạp. MVC không dành cho các ứng dụng "xin chào thế giới" Hãy bắt đầu từ đầuÝ tưởng cốt lõi đằng sau MVC và các mẫu thiết kế lấy cảm hứng từ MVC là Tách biệt các mối quan tâm. Cho biết chia tay là hai lần
Lớp mô hình (không phải "lớp" hoặc "đối tượng") sẽ chứa một số nhóm cấu trúc, mỗi nhóm xử lý như một khía cạnh khác nhau của logic nghiệp vụ. Các phần chính sẽ là
Ngoài ra, có thể có sự lẫn lộn trong các kho lưu trữ, đơn vị công việc và những thứ khác Lớp giao diện người dùng chủ yếu bao gồm các khung nhìn và bộ điều khiển. Nhưng cả hai đều sử dụng các dịch vụ để tương tác với lớp mô hình. Các dịch vụ cung cấp cách để bộ điều khiển thay đổi trạng thái của lớp mô hình và để các chế độ xem thu thập thông tin dựa trên trạng thái mới đó Trong ngữ cảnh của web, các khung nhìn và bộ điều khiển tạo thành một cặp lỏng lẻo, do tính chất phản hồi yêu cầu mà các ứng dụng web thể hiện Cần lưu ý rằng mặc dù bộ điều khiển có thể trực tiếp thay đổi trạng thái của chế độ xem hiện tại, nhưng phổ biến hơn là những thay đổi này được thực hiện thông qua mô hình. Ví dụ, một lý do để thay đổi chế độ xem trực tiếp là khi thay vì XML, bạn cần phản hồi bằng JSON Mặc dù cũng có thể lập luận rằng người ta có thể đơn giản khởi tạo một chế độ xem khác nhau cho từng định dạng đầu ra và tận dụng tính đa hình Không xem là gì?Có một quan niệm sai lầm phổ biến rằng các khung nhìn chỉ đơn giản là tệp mẫu được tôn vinh. Lỗi này trở nên cực kỳ phổ biến sau khi phát hành khung tạo mẫu RubyOnRails Lượt xem không phải là mẫu. Nếu bạn sử dụng chúng như vậy, bạn sẽ phá vỡ nguyên tắc cốt lõi đằng sau MVC và các mẫu lấy cảm hứng từ MVC Nếu bạn giả vờ rằng các mẫu là dạng xem, nó sẽ có tác động rất lớn đến kiến trúc của bạn. Không có chỗ cho logic trình bày trong dạng xem, do đó bạn đẩy logic trình bày trong lớp điều khiển hoặc lớp mô hình. Lựa chọn thông thường là "bộ điều khiển", bởi vì hầu hết mọi người hiểu rằng logic trình bày không có chỗ trong lớp mô hình Về cơ bản, điều này gây ra sự hợp nhất của chế độ xem và bộ điều khiển Chế độ xem đang làm gì?Trách nhiệm của khung nhìn là xử lý logic trình bày. Trong ngữ cảnh của web, mục tiêu của chế độ xem là tạo ra phản hồi cho người dùng (nhân tiện, trình duyệt không phải là con người)
Để tạo phản hồi này, chế độ xem thu thập thông tin từ lớp mô hình và dựa trên dữ liệu đã thu thập, tập hợp phản hồi bằng cách phân phối dữ liệu tới các mẫu và hiển thị hoặc đôi khi đơn giản gửi tiêu đề vị trí HTTP
Hơi chủ quan caoGần đây, tôi thích tương tác với MVC bằng cách sử dụng phương pháp sau
Và trên khung nhìn, tôi gọi phương thức có tên tương tự, chuẩn bị phản hồi được gửi tới máy khách
Còn KHÔ thì sao?Như bạn có thể đã nhận thấy, có một vấn đề nhỏ với việc có các dạng xem dưới dạng thể hiện. Bạn sẽ kết thúc với việc lặp lại các đoạn mã. Ví dụ. menu hoặc phân trang Hãy nhìn vào phân trang. Phân trang chứa logic, nhưng logic này không liên quan đến lớp mô hình. Người mẫu không có khái niệm "trang". Thay vào đó, phần logic này sẽ nằm trong lớp giao diện người dùng. Nhưng nếu mỗi chế độ xem của bạn chứa hoặc kế thừa phân trang, thì đó rõ ràng là vi phạm SRP (và thực tế là một số nguyên tắc khác nữa) Để tránh sự cố này, bạn có thể (và IMHO nên) giới thiệu các đối tượng trình bày trong chế độ xem của mình
Các đối tượng trình bày xử lý các phần logic lặp đi lặp lại. Điều này làm cho các khung nhìn "nhẹ nhàng" hơn nhiều và trong một số khía cạnh bắt đầu phản ánh cấu trúc của các dịch vụ từ lớp mô hình Sự tương tác giữa các đối tượng trình bày và các mẫu trở nên tương tự như sự tương tác giữa các đối tượng miền và trình ánh xạ dữ liệu Tôi có luôn cần tất cả những thứ này không?Không. Cách tiếp cận cụ thể này chủ yếu hướng đến mã, trong đó lớp giao diện người dùng có rất nhiều độ phức tạp và bạn cần tách việc xử lý đầu vào khỏi bản trình bày một cách lành mạnh Nếu ứng dụng của bạn có giao diện người dùng rất đơn giản, như. emm. bạn đang tạo API REST cho một dự án tích hợp lớn hơn. Trong đó, tùy chọn thực dụng có thể chỉ hợp nhất mọi cặp chế độ xem bộ điều khiển thành một lớp duy nhất Nó cũng có thể là một bước tốt khi tái cấu trúc một cơ sở mã kế thừa, bởi vì cách tiếp cận ít ràng buộc này cho phép bạn di chuyển toàn bộ các đoạn mã cũ. Khi bạn đã tách riêng các đoạn mã cũ hơn như vậy và kiểm tra, mọi thứ vẫn hoạt động (vì mã kế thừa không bao giờ có bất kỳ thử nghiệm nào. đó là cách nó trở thành "kế thừa"), sau đó bạn có thể bắt đầu chia nhỏ nó hơn nữa, đồng thời tập trung vào việc tách logic nghiệp vụ khỏi giao diện người dùng
|