Model view controller WordPress是否符合MVC标准? 有些人认为WordPress是一个博客平台,有些人认为它是一个CMS,有些人把WordPress称为一个开发框架。不管是哪一个,问题仍然存在。WordPress是否符合MVC标准

Model view controller WordPress是否符合MVC标准? 有些人认为WordPress是一个博客平台,有些人认为它是一个CMS,有些人把WordPress称为一个开发框架。不管是哪一个,问题仍然存在。WordPress是否符合MVC标准,model-view-controller,wordpress,Model View Controller,Wordpress,我读过论坛,大约三年前有人问起MVC。有一些肯定的答案,也有一些否定的答案。虽然没有人确切知道什么是MVC,每个人都以自己的方式看待它,但在所有的讨论中仍然存在一个普遍的概念 我对MVC框架几乎没有经验,而且框架本身似乎也没有任何东西。大多数MVC都是由程序员完成的,对吗?现在,回到WordPress,我们可以考虑控制器的核心改写引擎(WP1重写)吗?查询和插件逻辑作为模型?以及主题作为视图?还是我完全弄错了 谢谢;) 正如评论中已经提到的,MVC是一种架构设计模式,而不是特定的框架,不,Wor

我读过论坛,大约三年前有人问起MVC。有一些肯定的答案,也有一些否定的答案。虽然没有人确切知道什么是MVC,每个人都以自己的方式看待它,但在所有的讨论中仍然存在一个普遍的概念

我对MVC框架几乎没有经验,而且框架本身似乎也没有任何东西。大多数MVC都是由程序员完成的,对吗?现在,回到WordPress,我们可以考虑控制器的核心改写引擎(WP1重写)吗?查询和插件逻辑作为模型?以及主题作为视图?还是我完全弄错了


谢谢;)

正如评论中已经提到的,MVC是一种架构设计模式,而不是特定的框架,不,Wordpress不遵循MVC模式


视图(模板)与编程逻辑是分离的,但仅在前端,而不是在管理面板中,并且视图和应用程序逻辑的一般分离并非不可避免的MVC。MVC模式的实现通常采用某种面向对象的编程模式,Wordpress主要以过程的方式实现,在PHP函数中使用简单的SQL查询,因此也没有实际的模型。

Wordpress本身不是在MVC中构建的,但是可以在框架内构建非常面向MVC的主题和插件。有几种工具可以提供帮助:

WordPress MVC解决方案:

  • 丘罗:@
  • 蒂娜·MVC:@
  • 插件工厂:@
  • MVCPress:(放弃了,但很有趣的想法)
WordPress.org Ideas和Trac上的MVC线程:

  • (更多关于XSL而不是MVC)
  • (在小部件中的MVC上)

    • Wordpress有点像MVC。如果有什么区别的话,它是一个拉式MVC布局,视图从模型中“拉”出数据。它以一种非常自然的方式来实现这一点,而不是使用许多不同的对象,但这实际上使前端模板更容易以多种方式编写

      这也为视图提供了某种程度的控制器逻辑(因此有点像MVC)

      让我们来详细说明一下: Wordpress获得一个URL。wordpress核心充当一个控制器,确定要对数据库运行的初始查询,以及应该加载的视图(类别视图、单篇文章或页面视图等)。然后它打包初始查询响应并将其发送到视图文件

      该视图文件可以是严格的仅显示文件,也可以请求内置文件之外的其他信息/查询。这是MVC的拉式类型,视图从模型中拉取数据,而不是控制器将数据从模型“推”到视图中

      因此,当视图看到加载边栏或窗口小部件区域的代码时,它会请求该信息。但是,应该有哪些小部件是由控制器决定的,控制器查看侧栏中小部件的模型,然后选择设置为在当前页面上显示的小部件,并将其返回到视图

      它的每一部分都不是一个对象,这并不会减少MVC。您可以更改WP核心,而无需(必要)更改主题的任何内容。类似地,只要使用诸如“get_pages()”之类的内置函数,那么只要这些函数仍然返回正确的数据,模型和数据库表就可以更改。因此,模型独立于视图,控制器也独立于视图(除非视图添加控制器逻辑以完成比核心通常所做的更多的工作)

      虽然可以让一个模型对象包含许多方法和东西,比如WPModel::get_pages('blah blah'),并以这种方式包含所有内容,但仍然存在基本的关注点分离

      视图:模板文件 控制器:WP核心 模型:处理特定数据处理的各种函数

      只要名称、参数等保持不变(或者只是添加了新的),就可以保持关注点的分离,并且可以在不干扰其他关注点的情况下更改一个关注点

      它不是一个超级干净的MVC版本(特别是当涉及到钩子的时候),但在基本层面上它是从那里开始的

      在我看来,过程化并不是一件坏事。来自网站的请求本质上是过程化的:这是一个有明确开始和结束的过程,只需要一个过程来处理请求、获取数据、打包,然后死亡。您可以使用对象和对象方法以及OOP布局来设置这些步骤(这将使某些事情变得更简单),或者您可以编写大量函数调用,并以这种方式将它们分开。类成员(如私有变量)会以这种方式丢失,但取决于应用程序的需要。。。你可能不在乎


      没有一种伟大的方式来进行开发,WP占据了大约20%的网站,所以它正在做一些正确的事情。可能与不需要让人们学习/记忆复杂的类层次结构有关,以便让数据库回答“哪些页面是页面x的子页面?”的问题并处理这些数据。你能让OOP变得这么简单吗?是的,但是如果Joomla是一个很难用OOP实现复杂定制网站的例子,那么WP就更容易、更快,时间就是金钱。

      是一个专门为WordPress构建的微MVC框架。该项目旨在简化WordPress应用程序中的AJAX功能,并带来使用模型、视图和,和你的主题的控制器。

      为了让人们从搜索引擎中找到更多的信息来更新这个主题,wp-mvc插件在创建用于插件开发的mvc框架方面走了很长的路。你可以找到
      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.
      
      Things happen when WordPress is processing information.
      You can register your own function to fire when these things happen.