Класс не найден, когда он существует в плагине для Mautic.Работает локально, но не на промежуточном сервере - PullRequest
0 голосов
/ 11 июня 2018

Редактировать:

Произошла странная проблема, из-за которой файл API был переименован в строчную букву 'b' на сервере, поэтому класс не был найден.


Оригинал ниже

Я создал плагин для mautic для проверки писем на наличие сохраненных контактов в mautic с помощью API NeverBounce.У меня есть класс интеграции, который получает все последние непроверенные контакты и отправляет их в 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
{
    ...
}

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Произошла странная проблема, из-за которой файл API был переименован в строчную букву 'b' на сервере, поэтому класс не был найден.

0 голосов
/ 11 июня 2018

Попробуйте очистить кэш вручную, после того, как откроете CLI на вашем сервере и попробуйте запустить:

composer dump-autoload

Возможно, у вас есть проблемы с кешем или классом загрузки от композитора

...