Một trong những chủ đề định kỳ trồng trong các cuộc thảo luận vì nó liên quan đến WordPress là ý tưởng của WordPress và MVC.
Nhưng vấn đề là MVC không phải là viên đạn bạc phát triển web mà chúng tôi cố gắng làm cho nó trở thành hiện thực. Vâng, đó là một mẫu thiết kế tuyệt vời và cá nhân tôi nghĩ rằng nó phù hợp với mô hình ứng dụng web như găng tay, nhưng không phải mọi khung công tác hay nền tảng đều thực hiện mẫu thiết kế đó.
Trường hợp điểm: WordPress không phải là MVC.
Và điều đó vẫn ổn. Tôi nghĩ rằng chúng ta cần phải để lại mong muốn cố gắng để shoehorn nó vào các dự án của chúng tôi sang một bên đặc biệt là khi mô hình WordPress cung cấp không chỉ đủ, nhưng hoạt động tốt khi tận dụng một cách chính xác.
“Nhưng tôi yêu MVC!”
Tôi cũng vậy! Trong thực tế, tôi đã dành năm cuối cùng làm việc trên một dự án mà nhiều hơn hoặc ít hơn bắt chước kiến trúc MVC. Ví dụ cấp cao về MVC.
Ví dụ cấp cao về MVC.
Ví dụ:
Views were implemented using templates
Controllers were implemented by a combination of using function names like create, read, update, destroy, delete, and so on (even though these functions were hooked into the WordPress API
Models were functions also were called to validate and verify data prior to serializing the data. Again, this required that certain functions be hooked into WordPress to achieve the desired result.
Cuối cùng, một bộ quy tắc viết lại cho ứng dụng một bộ sạch các URL có thể dự đoán trong các định dạng của/người/cập nhật/1 hoặc/người/all. WordPress thực hiện mẫu nào?
WordPress triển khai kiến trúc hướng sự kiện (trong đó có một số biến thể, chẳng hạn như Mẫu quan sát).
Nói tóm lại, bạn khái niệm có thể nghĩ về điều này như sau:
Things happen when WordPress is processing information.
You can register your own function to fire when these things happen.
Không quá phức tạp, phải không? Một ví dụ cao cấp của mô hình hướng sự kiện Một ví dụ cao cấp của mô hình hướng sự kiện
Khi bạn bắt đầu suy nghĩ về mô hình trong đó nó hoạt động chứ không phải cố gắng để làm cho nó làm việc cách mà bạn muốn nó hoạt động, nó giải phóng. Nó giúp giải quyết vấn đề dễ dàng hơn nhiều.
Điểm mấu chốt là: WordPress triển khai mẫu thiết kế theo hướng sự kiện, vì vậy ngay cả khi bạn cố gắng triển khai MVC, bạn vẫn sẽ phải sử dụng hệ thống móc.
Nếu bạn không cẩn thận, bạn có thể kết thúc cố gắng tạo ra kiến trúc hoàn hảo mà không thực sự hoàn thành công việc của bạn, và vì thế bạn sẽ thấy mình cao lên trong bầu không khí của phần mềm. phi hành gia. Vì vậy, bạn đang nói tránh các mẫu thiết kế?
Không hề! Các mẫu thiết kế phục vụ một mục đích bởi vì, trên hết, chúng về cơ bản cung cấp cho chúng ta các giải pháp cho các vấn đề trước đây và thường được giải quyết. Sử dụng chúng!
Nhưng điểm tôi đang cố gắng thực hiện là chúng tôi không cần phải cố gắng buộc mọi thứ phải phù hợp với mô hình chỉ vì chúng tôi thích mô hình. Đó không phải là mục đích của họ. Thay vào đó, hãy tận dụng hình mẫu chính mà nền tảng lựa chọn của bạn thực hiện - trong trường hợp của chúng tôi, đó là mô hình theo hướng sự kiện - và sau đó triển khai các mẫu phù hợp (chẳng hạn như tiêm phụ thuộc hoặc tương tự).
Nếu không, nó giống như cố gắng đặt chân vào một chiếc găng tay.
Được cấp phép (và hoàn toàn được sao chép: P) từ: http://tommcfarlin.com/wordpress-and-mvc/
MVC là mẫu thiết kế có kiến thức độc lập và loại độc lập với loại phần mềm. Bất kỳ nền tảng blog, CMS hoặc khung công tác phát triển nào đều có thể là MVC, phụ thuộc vào cách nó được tạo ra. – eKek0
eKek0, đã nghĩ như vậy. Nhưng hey, cần có một số ví dụ về CMS và các khung công tác không tuân thủ MVC, tức là kiến trúc cốt lõi của chúng không phải là MVC. Bạn có nghĩ ra được không? – kovshenin