accented letters in majascule

This commit is contained in:
Julie Lenaerts 2021-10-06 15:52:11 +02:00
parent 72d67624a2
commit 7dd42c3fa2
2 changed files with 10 additions and 9 deletions

View File

@ -13,20 +13,21 @@ class PersonEventListener
{ {
public function onPrePersist(LifecycleEventArgs $event): void public function onPrePersist(LifecycleEventArgs $event): void
{ {
$em = $event->getObjectManager(); // $em = $event->getObjectManager();
if($event->getObject() instanceof Person){ if($event->getObject() instanceof Person){
$person = $event->getObject(); $person = $event->getObject();
$firstnameCaps = ucwords(strtolower($person->getFirstName()), " \t\r\n\f\v'-"); $firstnameCaps = mb_convert_case(mb_strtolower($person->getFirstName()), MB_CASE_TITLE, 'UTF-8');
$firstnameCaps = ucwords(strtolower($firstnameCaps), " \t\r\n\f\v'-");
$person->setFirstName($firstnameCaps); $person->setFirstName($firstnameCaps);
$lastnameCaps = strtoupper($person->getLastName()); $lastnameCaps = mb_strtoupper($person->getLastName(), 'UTF-8');
$person->setLastName($lastnameCaps); $person->setLastName($lastnameCaps);
$em->persist($person); // $em->persist($person);
$em->flush(); // $em->flush();
} elseif ($event->getObject() instanceof PersonAltName){ } elseif ($event->getObject() instanceof PersonAltName){
@ -34,8 +35,8 @@ class PersonEventListener
$altnameCaps = ucwords(strtolower($altname->getLabel()), " \t\r\n\f\v'-"); $altnameCaps = ucwords(strtolower($altname->getLabel()), " \t\r\n\f\v'-");
$altname->setLabel($altnameCaps); $altname->setLabel($altnameCaps);
$em->persist($altname); // $em->persist($altname);
$em->flush(); // $em->flush();
} else { } else {

View File

@ -52,9 +52,9 @@ class PersonCreateEventTest extends TestCase
public function generateNames(): iterator public function generateNames(): iterator
{ {
yield ['julie', 'Julie', 'lenaerts', 'LENAERTS']; yield ['émelie-marie', 'Émelie-Marie', 'lenaerts', 'LENAERTS'];
yield ['jean-marie', 'Jean-Marie', 'lenaerts', 'LENAERTS']; yield ['jean-marie', 'Jean-Marie', 'lenaerts', 'LENAERTS'];
yield ['vinCENT', 'Vincent', 'van gogh', 'VAN GOGH']; yield ['vinCENT', 'Vincent', 'fastré', 'FASTRÉ'];
yield ['Vincent', 'Vincent', 'van Gogh', 'VAN GOGH']; yield ['Vincent', 'Vincent', 'van Gogh', 'VAN GOGH'];
yield ['André marie', 'André Marie', 'Bah', 'BAH']; yield ['André marie', 'André Marie', 'Bah', 'BAH'];
} }