Новое в Symfony 4.3: Улучшение компонента инфлектор

Symfony включает внутренний компонент Inflector, в обязанности которого входит преобразование английских слов из множественного числа в единственное. Он используется в компонентах PropertyInfo и PropertyAccess, чтобы найти единственную форму имени свойства:

use Symfony\Component\Inflector\Inflector;

$result = Inflector::singularize('teeth');  // tooth
$result = Inflector::singularize('radii');  // radius

В Symfony 4.3 улучшили компонент несколькими способами. Во-первых, удалили его тег @internal, поэтому этот компонент больше не считается внутренним, и вы можете сделать так, чтобы ваши проекты зависели от него благодаря обещанию Symfony BC.

Во-вторых, превратили его в полноценный Inflector благодаря pluralize(), который возвращает форму множественного числа данного единственного английского слова:

use Symfony\Component\Inflector\Inflector;

$result = Inflector::pluralize('bacterium');  // bacteria
$result = Inflector::pluralize('alumnus');    // alumni
$result = Inflector::pluralize('news');       // news
$result = Inflector::pluralize('GrandChild'); // GrandChildren

Иногда невозможно определить уникальную форму единственного/множественного числа для данного слова. В этих случаях методы возвращают массив со всеми возможными формами:

use Symfony\Component\Inflector\Inflector;

Inflector::singularize('leaves');  // ['leaf', 'leave', 'leaff']

Inflector::pluralize('person');    // ['persons', 'people']