>source

gitlab-ci에서 SymfonyInsight를 사용하여 응용 프로그램의 코드 품질을 향상시킵니다. 이 앱에서는 엔터티에 CustomIdGenerator를 사용해야합니다.

분석에서 경고 오류가 발생했습니다. Doctrine Entity Manager를 인수로 전달하면 안됩니다. 이 오류는 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;
    }
}

내 엔티티 :

<?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

    Slack (Symfony on Slack) 커뮤니티 (https://symfony.com/slack)와 논의한 후에는 코드로이 오류를 막을 수 없습니다. 유일한 해결책은 CustomIdGenerator가있는 폴더를 스캔하지 못하게하는 것입니다.

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

관련 자료

  • 이전 자바에서 println 동물원의 오류를 극복하는 방법
  • 다음 mysql - 다른 열 값에 따라 쿼리에서 여러 개의 다른 열과 조인을 선택하는 방법은 무엇입니까?