« Programmation PHP avec Symfony/Doctrine » : différence entre les versions
Contenu supprimé Contenu ajouté
Aucun résumé des modifications |
|||
Ligne 40 :
=== Exemple ===
Voici par exemple plusieurs types d'attributs :
<syntaxhighlight lang=php>
/**
Ligne 47 ⟶ 48 :
class Word
{
/**▼
*/▼
private $id;
/**▼
▲ * @ORM\Column(name="spelling", type="string", length=255, nullable=false)
*/▼
private $spelling;
/**▼
▲ * @ORM\Column(name="pronunciation", type="string", length=255, nullable=true)
*/▼
private $pronunciation;
/**▼
* @var Language▼
private ?Language $language = null;
*▼
▲ * @ORM\ManyToOne(targetEntity="Language", inversedBy="words")
▲ * @ORM\JoinColumn(name="language_id", referencedColumnName="id")
*/▼
protected $language;▼
/**▼
* @var ArrayCollection▼
*▼
* @ORM\OneToMany(targetEntity="Homophon", mappedBy="word", cascade={"persist", "remove"})▼
*/▼
private $homophons;▼
#[ORM\OneToMany(targetEntity: Homophon::class, mappedBy: 'word', cascade: ['persist', 'remove'], orphanRemoval: true)]
private ArrayCollection $homophons;
public function __construct()
Ligne 129 ⟶ 116 :
return $this;
}
}
</syntaxhighlight>
==== Exemple en PHP < 8 ===
On utilise les annotations au lieu des attributs :
<syntaxhighlight lang=php>
/**
* @ORM\Entity
* @ORM\Table(name="word")
*/
class Word
{
▲ /**
* @ORM\Id
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\GeneratedValue(strategy="IDENTITY")
▲ */
private $id;
▲ /**
* @ORM\Column(name="spelling", type="string", length=255, nullable=false)
▲ */
private $spelling;
▲ /**
* @ORM\Column(name="pronunciation", type="string", length=255, nullable=true)
▲ */
private $pronunciation;
▲ /**
▲ * @var Language
▲ *
* @ORM\ManyToOne(targetEntity="Language", inversedBy="words")
* @ORM\JoinColumn(name="language_id", referencedColumnName="id")
▲ */
▲ protected $language;
▲ /**
▲ * @var ArrayCollection
▲ *
▲ * @ORM\OneToMany(targetEntity="Homophon", mappedBy="word", cascade={"persist", "remove"})
▲ */
▲ private $homophons;
//...
}
</syntaxhighlight>
|