Аргумент 1 передан в Doctrine \ Common \ EventManager :: addEventSubscriber () - PullRequest
0 голосов
/ 29 мая 2018

У меня возникают проблемы при загрузке приложения Symfony:

php.CRITICAL: Type error: Argument 1 passed to Doctrine\Common\EventManager::addEventSubscriber() must implement interface Doctrine\Common\EventSubscriber, instance of optro\Help\ORM\Listener\MessageElasticaListener

См. Конфигурацию моего сервиса:

helpdesk.listner.optro:
class:  Optro\Help\ORM\Listener\MessageElasticaListener
arguments:
- '@fos_elastica.object_persister.optro.technical_assistance'
- '@fos_elastica.indexable'
- { index: technical_assistance, type: post, identifier: id }
tags:
- { name: doctrine.event_listener, event: elastica.index.index_post_populate }

Это мой класс MessageElasticaListener:

use Doctrine\Common\EventArgs;
use Doctrine\Common\Persistence\Event\LifecycleEventArgs;
use FOS\ElasticaBundle\Doctrine\Listener as ElasticaListener;
use optro\Help\Entity\HelpdeskMessage;

class MessageElasticaListener extends ElasticaListener
{
/**
 * {@inheritdoc}
 */

private function isObjectIndexable($object)
{
    return true;
}

/**
 * {@inheritdoc}
 */
public function postPersist(LifecycleEventArgs $eventArgs)
{
    if (!$eventArgs instanceof LifecycleEventArgs) {
        return;
    }

    $entity = $eventArgs->getObject();

    if ($entity instanceof HelpdeskMessage && $this->isObjectIndexable($entity->getTechnicalAssistance())) {
        $this->objectPersister->replaceOne($entity->getTechnicalAssistance());
    }
}

`

Что не так?Неправильная конфигурация служб?

Я использую Symfony 3.4 и FOS Elasticasearch 5.0.3

...