Model view controller wordpress插件MVC页面结构
我正在开发一个wordpress插件,它占据了整个页面,并且正在计划一次旅行 该插件分散开来,包含几个模块和10多个“视图”(预订、计费、注册、我的个人资料、我的预订、我的评论等) 我有很强的OOP和MVC背景,但这个插件最初是在一个模板上创建的,所有内容都是用ajax加载的,而不是以有组织的方式:)Model view controller wordpress插件MVC页面结构,model-view-controller,wordpress,Model View Controller,Wordpress,我正在开发一个wordpress插件,它占据了整个页面,并且正在计划一次旅行 该插件分散开来,包含几个模块和10多个“视图”(预订、计费、注册、我的个人资料、我的预订、我的评论等) 我有很强的OOP和MVC背景,但这个插件最初是在一个模板上创建的,所有内容都是用ajax加载的,而不是以有组织的方式:) 在wordpress中组织大型插件(半小型站点)的良好实践是什么 有没有办法为模块视图文件创建直接链接?比如: domain.com/blog/wp/plugins/my_plugin/prof
- 在wordpress中组织大型插件(半小型站点)的良好实践是什么
- 有没有办法为模块视图文件创建直接链接?比如: domain.com/blog/wp/plugins/my_plugin/profile.php
我在这里寻找有经验的人的指导方针。首先,这不容易做到,而且随着开发的进展,更难坚持下去 我将首先尝试回答您的要点,然后尝试谈论一些我试图坚持的架构内容
- 我尽可能把它们组织得接近正常。因此,我通常会为模型、控制器和视图创建文件夹。尽可能多地使用与编写其他应用程序相同的方式编写应用程序
- 使用
GravityFormsHooks\Loader
的方法来处理对象的挂钩。在中,我打电话来实际执行钩子。这个例子将采取一个动作或过滤器,但它是专门为Gravityforms定制的,所以YMMV
本质上,这个GravityFormsHooks\Loader::hook()
方法所做的是实例化我们要挂接的类,并正常生成钩子
我从主插件文件调用的类是。请注意,您挂接的任何方法都必须声明为public
。如果我们要把自己塞进MVC范例中,这里的方法就是你的控制器。从那里,你可以跳转到注入模型,模板引擎,各种各样的酷东西
正如我在最初的帖子中提到的,我试图将我与WordPress的联系保持在最低限度。我的意思不是说你应该编写API来做WordPress已经有API的事情,只是你的钩子应该集中并最小化。它确实是一种有用的关注点分离,随着应用程序的增长,它将帮助您更轻松地管理复杂性
我提供的示例作为一个钩子控制器应该可以很好地工作,只需最少的修改就可以删除一些更专业的GravityForms内容
如果您还有其他问题,请告诉我。首先,这不容易做到,而且随着开发的进展,更难坚持下去 我将首先尝试回答您的要点,然后尝试谈论一些我试图坚持的架构内容
- 我尽可能把它们组织得接近正常。因此,我通常会为模型、控制器和视图创建文件夹。尽可能多地使用与编写其他应用程序相同的方式编写应用程序
- 使用