ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php – 非破坏性的spl_autoload_register

2019-09-01 22:30:05  阅读:165  来源: 互联网

标签:php wordpress wordpress-plugin


我想在我正在开发的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";

}

标签:php,wordpress,wordpress-plugin
来源: https://codeday.me/bug/20190901/1786739.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有