php – 非破坏性的spl_autoload_register

我想在我正在开发的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功能.

有任何想法吗?

解决方法:

我相信我现在有一个合理的解决方案,但对其他人的意见持开放态度.我的解决方案是首先对模块的存在进行模板加载器功能测试.我还选择继续挂钩到“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";

}

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...