在(Php)类中定义挂钩?

时间:2011-08-26 作者:OpenOne

我一直在尝试编写一个可重用的模块化选项类,我被困在这一特定点上。

如何在php类中定义挂钩?

尝试1:

class super_options {
     // ..........................

       function render_options_page ()
       {
            //....................

                $this->top_page_hook();
            //....................
        } 

     // ..........................

        function top_page_hook() {
             do_action( array( &$this, \'top_page_hook\') );
        }

}
当挂接到上面时,添加\\u action(数组(&;$plugs,“top\\u page\\u hook”),“stuff\\u for\\u top\\u hook”);

这行不通。

尝试2:更换$this->top_page_hook();, 具有do_action( \'top_page_hook\' ); add_action( \'top_page_hook\', \'stuff_for_top_hook\' );
  • 工作正常,但类失去了可重用性
  • 1 个回复
    最合适的回答,由SO网友:Rarst 整理而成

    钩子只能通过字符串识别。因此,使用动态挂钩的唯一选项是在其名称中使用一些变量:

    do_action( $some_string_variable . \'_top_page_hook\' );
    
    根据您尝试执行的操作,这可能是有意义的(如前缀,由配置定义)或随机生成的唯一ID(不太常见)。

    结束