From f20528c19e72adb5e18fecb36153d5fa8754ce14 Mon Sep 17 00:00:00 2001 From: Nathan Boiron Date: Thu, 15 Jan 2026 13:43:42 +0100 Subject: [PATCH] =?UTF-8?q?Mise=20en=20place=20d'un=20glossaire=20et=20de?= =?UTF-8?q?=20r=C3=A8gles=20pour=20doctrine/orm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/adr/doctrine.md | 63 +++++++++++++++++++++++++++++++++++++++++++++ doc/glossaire.md | 13 ++++++++++ 2 files changed, 76 insertions(+) create mode 100644 doc/adr/doctrine.md create mode 100644 doc/glossaire.md diff --git a/doc/adr/doctrine.md b/doc/adr/doctrine.md new file mode 100644 index 000000000..ec2c8451f --- /dev/null +++ b/doc/adr/doctrine.md @@ -0,0 +1,63 @@ +# ADR - Doctrine ORM + +Cet ADR spécifie les règles décidées pour l'utilisation de l'ORM Doctrine. + +## La langue + +Avant toute chose, il a été décidé d'utiliser l'anglais pour les entités, à l'exception de certains sigles peu +traduisibles en français. + +Le [glossaire][glossaire] doit être complété avec chaque nouveau mot anglais afin de conserver un lieu central pour +aider à la compréhension des entités et du code en général. + +## Entité + +Une entité doit déclarer ses propriétés fortement typées et en `public` (au lieu d'avoir des getters/setters). + +Par exemple : + +```php +use Doctrine\ORM\Mapping as ORM; + +#[ORM\Entity] +#[ORM\Table(name: 'exemple')] +class Exemple +{ + #[ORM\Id] + #[ORM\GeneratedValue] + #[ORM\Column] + public ?int $id = null; + + #[ORM\Column(length: 255, nullable: false)] + public string $nonNullbale; + + #[ORM\Column(length: 255, nullable: true)] + public ?string $nullable = null; +} +``` + +## Repository + +Un repository doit hériter de la classe de base `\AppBundle\Doctrine\EntityRepository` et implémenter le constructeur +avec l'entité concernée. + +Par exemple : + +```php +use AppBundle\Exemple\Entity\Exemple; +use AppBundle\Doctrine\EntityRepository; +use Doctrine\Persistence\ManagerRegistry; + +/** + * @extends EntityRepository + */ +final class ExempleRepository extends EntityRepository +{ + public function __construct(ManagerRegistry $registry) + { + parent::__construct($registry, Exemple::class); + } +} +``` + +[glossaire]: ../glossaire.md diff --git a/doc/glossaire.md b/doc/glossaire.md new file mode 100644 index 000000000..80d252511 --- /dev/null +++ b/doc/glossaire.md @@ -0,0 +1,13 @@ +# Glossaire + +Ce document sert à centraliser et expliquer les termes anglais du projet. + +## Trésorerie + +### Rule + +Désigne une règle de comptabilité, utilisée pour qualifier automatiquement certaines transactions du journal. + +### Category + +La catégorie d'une transaction, par exemple `Transport`, `Inscription` ou `Remboursement`.