Có khoảng một triệu "khung công tác PHP". Và hầu hết trong số họ lập hóa đơn theo mô hình MVC. Mặc dù rất mong muốn vượt qua phong cách mã hóa osC Commerce (xử lý logic được trộn lẫn nhiều với SQL và HTML), nhưng chắc chắn có những cách tiếp cận đơn giản và dễ thực hiện hơn để có được thiết kế ứng dụng có thể duy trì.
Khái niệm MVC ban đầu được nhắm mục tiêu tại các ứng dụng GUI. Và đối với Gtk / Python, có vẻ khả thi để tuân theo nó. Nhưng các ứng dụng web PHP không hoạt động trên Chế độ xem trực tiếp (các yếu tố GUI) và thời gian chạy Bộ điều khiển liên tục. Nó chắc chắn là một cách gọi sai nếu nó chỉ mô tả nhóm mã + thư mục được sử dụng hoặc đặt tên lớp.
"MVC" dường như được sử dụng như một từ thông dụng cho các khung công tác PHP. Và tôi thực sự đã thấy một hoặc hai khung công tác PHP trưởng thành thừa nhận nó, nhưng dù sao cũng xác định lại cụm từ để phù hợp với quốc tế.
Vì vậy, nói chung là dầu rắn? Tại sao thuật ngữ không được sử dụng tốt hơn và một khái niệm hợp lý hơn để truyền bá PHP có thể duy trì?
Một số lý luận công phu
Tại sao tôi nghi ngờ rằng việc triển khai PHP không tuân theo mẫu MVC thực:
Mô hình : về lý thuyết, Mô hình nên mập và chứa logic nghiệp vụ và bộ điều khiển phải là trình xử lý mỏng (đầu vào-> đầu ra). Trong thực tế, các khung công tác PHP ủng hộ các Mô hình nông . Ví dụ, CI và Symfony tương đương Model == ORM. Ngay cả đầu vào HTTP cũng được xử lý bởi bộ điều khiển, không được coi là mô hình.
Lượt xem : cách giải quyết với AJAX được giảm giá, không thể có Lượt xem trên các trang web. Các khung công tác PHP vẫn bơm ra các trang. Giao diện vẫn hoạt động hiệu quả theo mô hình HTTP thông thường, không có lợi thế so với các ứng dụng không phải là MVC. (Và cuối cùng, không có khung php rộng rãi nào thực sự có thể xuất ra GUI Views thay vì HTML. Tôi đã thấy một thư viện PHP có thể vận hành Gtk / Console / Web, nhưng các khung không có.)
Kiểm soát viên : Tôi không chắc chắn. Các bộ điều khiển có thể không cần phải hoạt động lâu dài và liên tục hoạt động trong mô hình MVC. Trong bối cảnh khung công tác PHP, tuy nhiên họ chủ yếu yêu cầu xử lý. Không thực sự là một cái gì đó để có được tranh luận về, nhưng nó chỉ cảm thấy hơi ồn ào.
Sẽ có mô tả tốt hơn? Tôi đã thấy các từ viết tắt như PMVC hoặc HMVC được ném xung quanh. Mặc dù các mô tả trở nên mơ hồ hơn ở đó, nhưng có lẽ những mô tả này sẽ mô tả các khung web hiện tại ít hokey hơn?