【发布时间】:2020-02-08 23:11:27
【问题描述】:
我一直在开发一个 wordpress 插件,我不得不在另一个文件中扩展一个类,这是我以前没有做过的。所以这让我开始使用自动加载器。让您了解我的文件夹结构。
我的插件目录
插件/knp-vendor-portal/
我的文件夹结构。
/knp 类
/css
/js
knp-vendor-portal.php
在我的主插件文件中,我使用以下内容加载我的类,但是当我查看查询监视器时,我得到了大量的错误。错误表明 include_once 函数似乎试图从所有其他插件加载数百个类。那么,如果 DIR 名称指向我的类目录,为什么它不只从我的插件中加载类。
这是我在我的主插件文件中使用的代码。
function knp_load_first(){
//Auto load all the class files
spl_autoload_register('knpv_autoloader');
//Some other code calling some methods
}
add_action('plugins_loaded', 'knp_load_first');
function knpv_autoloader($classname){
include_once plugin_dir_path( __FILE__ ).'knp-classes/'.$classname.'.php';
}
【问题讨论】:
-
自动加载器会为每个尝试加载时尚未加载的类运行。在尝试从
knp-classes目录加载之前,您需要检查knpv_autoloader函数中的$classname是否与您的命名空间匹配。
标签: php wordpress spl-autoload-register