3

我想在我正在开发的 wordpress 插件中通过 spl_autoload_register 使用类的动态加载,但问题是它不能干扰此功能的预先存在的实现。在我最初的尝试中:

// register an autoloader function for template classes
spl_autoload_register ( 'template_autoloader' );

function template_autoloader ( $class ) {
    include LG_FE_DIR . "/includes/chart_templates/class.{$class}.php";
}

似乎可以加载我自己的类,但同时会导致其他插件出现大量错误,这些插件显然也在使用 spl_autoload_register 功能。

有任何想法吗?

4

1 回答 1

5

我相信我现在有一个合理的解决方案,但对其他人的意见持开放态度。我的解决方案是先让模板加载器功能测试文件是否存在。我还选择继续挂钩到“init”挂钩,因此首先加载静态包含/要求(或至少其中大部分)。该函数现在看起来像这样:

add_action ( 'init' , 'class_loader' );

function class_loader () {
    // register an autoloader function for template classes
    spl_autoload_register ( 'template_autoloader' );
}

function template_autoloader ( $class ) {
if ( file_exists ( LG_FE_DIR . "/includes/chart_templates/class.{$class}.php" ) ) 
    include LG_FE_DIR . "/includes/chart_templates/class.{$class}.php";

}
于 2012-08-06T21:47:06.703 回答