因此,WP 3.1引入了奇特的WP\\u List\\u类(),使我重写了所有自定义管理表。很公平。但是在good\'ol时代,我能够使用$this->method()
因为我将页面文件包含在通过add_submenu_page()
. 那很好,有点优雅——或者至少很好——我想。
但现在,我的代码必须位于我的\\u WP\\u List\\u类的方法中,该类继承自WP\\u List\\u类。由于我不能进行多重继承,我似乎必须引用我的全局插件实例或在类中重新关联它,这两种情况中的任何一种都会让我感到不安。
类堆叠似乎也不是一个选项,因为很明显,我不能让WP\\u List\\u类继承我的插件类,也不想让我的插件类继承WP\\u List\\u类。
是我忽视了什么,还是我必须接受它?
编辑:更多上下文:
我可能想得太复杂了,但我的场景是这样的:我有一个“元”插件类,它被其他插件实例化(多次)。所以我甚至不知道它是什么,坦率地说,我不想知道这些实例中的每一个都将自己挂接到管理菜单中,并创建一个自定义菜单页。这些实例中的每一个都会获得一些传递的参数(比如一个id,比如一个实例),这些参数在实例化时存储在内部。如果调用一个方法,该方法依赖于这些内部存储的值。
到目前为止,这些实例中的每一个都可以独立存在,我不需要在任何数组或任何东西中注册它们,如果需要,您甚至可以匿名实例化它们。
现在,我需要将方法添加到我的WP\\u List\\u类继承类中,该类也将依赖于这些值。所以我唯一能想象的就是这样做:
function table_me_some() {
$table = new My_WP_List_Class(&$this);
...
}
然后在
My_WP_List_Class
执行以下操作:
function __construct($mama) {
$this->_mama = $mama;
}
function whatever() {
$this->_mama->my_plugin_class_instance_method();
}
那么
my_plugin_class_instance_method()
存在于我的实例化插件类中,并引用它自己的内部变量存储。
然而,我现在才想到这个,但我仍然觉得它不是很整洁。