我创建了一个关于我遇到的一个主要问题的视频。我需要了解文件加载架构,在WP插件开发中编写类时如何完成(一个类如何知道另一个类的存在),以及它与WP MVC文件加载架构的比较。这是一个很大的问题,我经历了各种较小的问题,这些问题帮助我在下面的驱动链接中的视频中找到了问题摘要。我也将插件代码放在Google云端硬盘文件夹中:https://drive.google.com/open?id=1JVSSlkSJ5pCfNojRh6jen3ax2w-HZr5d
答案 0 :(得分:0)
$wp_filter[ $tag ]->do_action( $args );
WP_Hook->do_action
,然后调用WP_Hook->apply_filters
MvcLoader->init
,然后调用所需的load_ controllers / libs / models / settings / functions (只加载粗体文件夹名下的文件)$this->load_helper('xyz')
,基类将自动尝试从helpers文件夹加载帮助程序类。控制器类现在将有一个名为xyz的辅助对象(类名,包括下划线,没有_helper后缀)。现在可以通过控制器类访问辅助类(在视图类中也是如此。使用类似于$controller->xyz->function()
)[已测试] 一个例子是render_view()
- 这将调用控制器,或者帮助器,render_view(),它将使用file_includer来查找所需的文件路径,并调用{ {1}}在该文件路径上。因此,更像是动态加载正在使用的文件。
require
是如何被触发的?在主插件的文件:wp_mvc.php中,根据它是否在管理/公共功能视图中,使用所需参数调用wp_mvc_load_global_functionality。该函数中的一个操作是MvcLoader->init()
,它触发MvcAdminLoader的init挂钩,它是MvcLoader的子节点[通过注释掉add_action进行测试,它不再有效]