【问题标题】:Wordpress plugin: composer class not foundWordpress 插件:找不到作曲家类
【发布时间】:2017-12-01 16:29:09
【问题描述】:

我正在开发一个 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;

【问题讨论】:

    标签: php wordpress composer-php


    【解决方案1】:

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

    require 'vendor/autoload.php';
    

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-09-11
      • 1970-01-01
      • 2019-07-25
      • 2015-07-04
      • 2018-04-05
      • 2016-01-17
      • 1970-01-01
      • 2016-01-10
      • 2015-01-30
      相关资源
      最近更新 更多