ensureSite( $manager, name: 'Chatellerault', street: "14 All. d'Argenson", complement: null, postalCode: '86100', city: 'Châtellerault', color: '#056CF2', code: '86', ); // Saint-Jean : jaune vif. Le nom du site (identifier) ne reflete // pas la ville reelle (Fontenet) — c'est une nomenclature interne // client. Code 17 (prefixe TP — RG-5.02). $this->ensureSite( $manager, name: 'Saint-Jean', street: 'Z i', complement: null, postalCode: '17400', city: 'Fontenet', color: '#F3CB00', code: '17', ); // Pommevic : vert clair. Code 82 (prefixe TP — RG-5.02). $this->ensureSite( $manager, name: 'Pommevic', street: '1 Av. Jean Duquesne', complement: null, postalCode: '82400', city: 'Pommevic', color: '#74BF04', code: '82', ); $manager->flush(); } /** * Cree le site s'il n'existe pas encore, sinon re-aligne rue, complement, * code postal, ville et couleur sur les valeurs de reference. * * Note : le nom sert de cle de lookup (il est unique en base) et n'est * donc pas resynchronise. Consequence : renommer un site dans la * fixture cree un nouveau site sans supprimer l'ancien, sauf si le * purger Doctrine est actif (cas nominal de `doctrine:fixtures:load`). */ private function ensureSite( ObjectManager $manager, string $name, string $street, ?string $complement, string $postalCode, string $city, string $color, string $code, ): Site { $site = $this->siteRepository->findByName($name); if (null === $site) { $site = new Site($name, $street, $complement, $postalCode, $city, $color); $site->setCode($code); $manager->persist($site); return $site; } $site->setStreet($street); $site->setComplement($complement); $site->setPostalCode($postalCode); $site->setCity($city); $site->setColor($color); $site->setCode($code); return $site; } }