0

编辑:

有一个奇怪的问题导致 API 文件在服务器上被重命名为小写“b”,这就是找不到该类的原因。


原文如下

我为 mautic 制作了一个插件,可以使用 NeverBounce API 检查 mautic 中存储的联系人的电子邮件。我有一个集成类,它获取所有最新的未检查联系人并将它们发送到 API,该插件在本地工作得非常好,但是当在暂存版本上安装插件并尝试运行命令时,它无法找到 NeverBounceApi 类。

  [Symfony\Component\Debug\Exception\ClassNotFoundException]
  Attempted to load class "NeverBounceApi" from namespace "MauticPlugin\THNeverBounceBundle\Api".
  Did you forget a "use" statement for another namespace?

我已经清除了缓存,运行了 composer dump-autoload 并检查了插件文件的权限,一切似乎都井井有条。文件夹结构如下:

/PluginBundle
..
--/Integrations
----/NeverBounceIntegration.php
--/Api
----/NeverBounceApi.php
..

NeverBounceIntegration.php

<?php
namespace MauticPlugin\THNeverBounceBundle\Integration;

....
use MauticPlugin\THNeverBounceBundle\Api\NeverBounceApi;

class NeverBounceIntegration extends AbstractIntegration
{
....
    public function getApiHelper()
    {
        if (empty($this->helper)) {
            $this->helper = new NeverBounceApi($this);
        }

        return $this->helper;
    }
....
    public function checkContacts()
    {
        ...
           // it fails when calling the Api class
           $response = $this->getApiHelper()->createJob($list);

    }
}

NeverBounceApi.php

<?php

namespace MauticPlugin\THNeverBounceBundle\Api;

use Mautic\PluginBundle\Integration\AbstractIntegration;
...

class NeverBounceApi
{
    ...
}
4

2 回答 2

0

Try to clear cache manually, after open the CLI into your server and try to launch:

composer dump-autoload

Probably you have a problem on cache or on load class by composer

于 2018-06-11T09:44:50.357 回答
0

There was a weird issue which caused the API file to get renamed with a lowercase 'b' on the server which is why the class wasn't found.

于 2018-06-11T11:22:27.370 回答