Utiliser des constantes de classe dans les annotations Doctrine

Publié le 07/11/2019 • Mis à jour le 07/11/2019


English language detected! 🇬🇧

  We noticed that your browser is using English. Do you want to read this post in this language?

Read the english version 🇬🇧 Close

C'est une petite astuce permettant d'éviter de mettre en dur des valeurs dans les annotations Doctrine. Par exemple, c'est utile lorsque on a une contrainte de taille qui peut être partagée parmi plusieurs champs et entités. On peut aussi utiliser ces constantes pour créer les contraintes de formulaire. Veuillez noter qu'elles doivent être publiques sous peine d'avoir une erreur.


     * #@ORM\Column(name="label", type="string", length=ArticleType::LABEL_MAX_LENGTH, nullable=false)
     */
    protected ?string $label = null;

    // L1 to 28 used in templates/snippet/code/_53.html.twig

    public function __toString(): string
    {
        return sprintf('%s (%d)', $this->label ?? '', $this->id ?? 0);
    }

    public function getId(): ?int
    {
        return $this->id;
    }

    public function getLabel(): ?string
    {
        return $this->label;
    }

    public function setLabel(string $label): ArticleType
    {
        $this->label = $label;

        return $this;
    }

    public function isArticle(): bool
    {
        return ArticleTypeRepository::TYPE_ARTICLE === $this->getId();
    }

    public function isSnippet(): bool
    {
        return ArticleTypeRepository::TYPE_SNIPPET === $this->getId();
    }
}

 Plus sur Stackoverflow   Lire la doc  Snippet aléatoire