Symfony Insight: Как предотвратить предупреждение «Отсутствует менеджер сущностей в параметрах» для CustomIdGenerator? - PullRequest
1 голос
/ 20 мая 2019

Я использую SymfonyInsight в gitlab-ci для улучшения качества кода моего приложения.В этом приложении мне нужно использовать CustomIdGenerator для моих сущностей.

В моем анализе я получил предупреждение: Менеджер сущностей Doctrine не должен передаваться в качестве аргумента.Эта ошибка обнаружена для метода с именем «generate», используемого CustomIdGenerator.

<?php


namespace MyApp\Generator;


use Doctrine\ORM\EntityManager;
use Doctrine\ORM\Id\AbstractIdGenerator;

class IDGenerator extends AbstractIdGenerator
{

    /**
     * Generates an identifier for an entity.
     *
     * @param EntityManager $em
     * @param object|null $entity
     * @return int
     * @throws \Doctrine\Common\Persistence\Mapping\MappingException
     * @throws \ReflectionException
     */
    public function generate(EntityManager $em, $entity)
    {
        $class = $em->getMetadataFactory()->getMetadataFor(get_class($entity))->getName();

        $res = <My own logic>

        return $res;
    }
}

My Entity:

<?php


use Doctrine\ORM\Mapping as ORM;

/**
 *
 * @ORM\Table(name="my_table")
 * @ORM\Entity
 */
class Entity
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id_unique", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="CUSTOM")
     * @ORM\CustomIdGenerator(class="IDGenerator")
     */
    private $id;

Есть ли способ предотвратить запуск SymfonyInsight только в этом случае?

1 Ответ

0 голосов
/ 21 мая 2019

После обсуждения с сообществом Symfony on Slack (https://symfony.com/slack),) мы не можем предотвратить эту ошибку с помощью кода. Единственное решение - предотвратить сканирование папки, в которой расположен CustomIdGenerator.

https://insight.symfony.com/docs/how-to/ignore-a-specific-directory.html

...