【发布时间】:2019-11-23 16:40:46
【问题描述】:
一切正常,我可以在本地 wamp 服务器中激活我的插件,但是当我尝试在网站上上传并激活我的插件时,我收到了一个致命错误,提示找不到类。
我尝试在我的网站上使用 ssh 运行 composer init 和 composer install 但无法正常工作
这是我的主要插件 PHP 文件:
if( file_exists( dirname(__FILE__) . '/vendor/autoload.php'))
require_once plugin_dir_path(__FILE__) . '/vendor/autoload.php';
function activate_aa_test()
{
Inc\Base\Activate::activate();
}
function deactivate_aa_test()
{
Inc\Base\Deactivate::deactivate();
}
register_activation_hook(__FILE__, 'activate_aa_test');
register_deactivation_hook(__FILE__, 'deactivate_aa_test');
这是 composer.json
"name": "vahid/aa-test",
"description": "test",
"type": "project",
"license": "GPL",
"authors": [
{
"name": "Vahid",
"email": "test@test.com"
}
],
"minimum-stability": "dev",
"require": {},
"autoload": {
"psr-4": {"Inc\\": "./inc"}
}
}
这些是 WordPress 错误:
Fatal error: Uncaught Error:
Class 'Inc\Base\Activate' not found in /home/vahidsapp/public_html/wp-content/plugins/aa-test/aa-test.php:34
Stack trace: #0 /home/vahidsapp/public_html/wp-includes/class-wp-hook.php(286): activate_aa_test('')
#1 /home/vahidsapp/public_html/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters('', Array)
#2 /home/vahidsapp/public_html/wp-includes/plugin.php(465): WP_Hook->do_action(Array)
#3 /home/vahidsapp/public_html/wp-admin/plugins.php(177): do_action('activate_aa-tes...')
#4 {main} thrown in /home/vahidsapp/public_html/wp-content/plugins/aa-test/aa-test.php on line 34
【问题讨论】:
-
尝试
composer dump-autoload并再次检查。 -
已经试过了,不行。
-
我发现如果我将激活和停用类从
inc/base移动到inc并将命名空间从namespace Inc\Base;更改为namespace Inc;我可以激活/停用插件,但在我的主要plugin 我设法为每个部分创建了单独的文件夹,但我无法将所有内容移至 inc 的根目录!