Utilisation du composant Symfony string pour récupérer le singulier ou pluriel d'un mot

Publié le 15/10/2022 • Actualisé le 15/10/2022


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

Dans ce bout de code, nous voyons comment utiliser le composant Symfony string pour récupérer le singulier ou pluriel d'un mot. Ce n'est pas une tâche facile, tant il y a de cas spéciaux. Veuillez noter que ces fonctions retournent un tableau de résultats et non une chaîne, en effet, il est possible d'avoir plus d'un résultat (dépendant de contextes différents). L'inflecteur est aussi disponible en français.


<?php

declare(strict_types=1);

namespace App\Controller\Snippet;

use Symfony\Component\String\Inflector\EnglishInflector;
use Symfony\Component\String\Inflector\FrenchInflector;

/**
 * J'utilise un trait PHP afin d'isoler chaque snippet dans un fichier.
 * Ce code doit être apellé d'un contrôleur Symfony étendant AbstractController (depuis Symfony 4.2)
 * ou Symfony\Bundle\FrameworkBundle\Controller\Controller (Symfony <= 4.1).
 * Les services sont injectés dans le constructeur du contrôleur principal.
 */
trait Snippet223Trait
{
    public function snippet223(): void
    {
        // English
        $inflector = new EnglishInflector();
        $result = $inflector->pluralize('tooth');
        print_r($result);
        $result = $inflector->singularize('leaves');
        print_r($result);

        // French
        $inflector = new FrenchInflector();
        $result = $inflector->pluralize('hibou');
        print_r($result);
        $result = $inflector->singularize('chevaux');
        print_r($result);

        // That's it! 😁
    }
}

 Exécuter le snippet  Plus sur Stackoverflow   Lire la doc  Snippet aléatoire

  Travaillez avec moi !