Wordpress插件:找不到作曲家类

时间:2017-06-28 10:43:14

标签: php wordpress composer-php

我正在开发一个Wordpress插件,我在根目录下的插件目录中有作曲家。我已经安装了我想要使用的所有软件包,然后在自动加载软件包后,在我的插件文件顶部的每个命名空间中加载了PHP use命令。

PHP错误

[28-Jun-2017 10:09:37 UTC] PHP Fatal error:  Class 'DrewM\MailChimp\MailChimp' not found in /home/xxx/public_html/wp-content/plugins/plugin-name/plugin-name.php on line 44

插件文件结构

/plugin-name
 '- vendor/
 '- .gitignore
 '- composer.json
 '- plugin-name.php

composer.json内容

{
    "require": {
        "guzzlehttp/guzzle": "^6.3",
        "theiconic/php-ga-measurement-protocol": "^2.0",
        "mailgun/mailgun-php": "~2.3.4",
        "stripe/stripe-php": "^4.13.0",
        "mailchimp/mailchimp": "^2.0",
        "drewm/mailchimp-api": "^2.4"
    }
}

plugin-name.php内容

<?php
/*
Plugin Name: Plugin name
[...]
*/
require 'vendor/autoload.php';
use TheIconic\Tracking\GoogleAnalytics\Analytics;
use Mailgun\Mailgun;
use Stripe\Stripe;
use \DrewM\MailChimp\MailChimp;

1 个答案:

答案 0 :(得分:1)

解决:在plugin-name.php,我需要更改

require 'vendor/autoload.php';

require plugin_dir_path(__FILE__).'vendor/autoload.php';

因为当前工作目录始终是Wordpress安装的根目录,而不是我的插件目录。

我没有在require行上收到错误的原因是因为我在安装的根目录中有另一个类似的vendor目录。