Новое в Symfony 5.1: Устарел компонент Inflector

Компонент Symfony Inflector преобразует слова между их формами единственного и множественного числа (пока только на английском языке). Он используется в нескольких частях Symfony для генерации уникальных имен свойств из множественных имен методов и наоборот ($foo <-> setFoos(), $foos <-> addFoo()).

В Symfony 5.1 пометили этот компонент как устаревший и перенесли его логику в компонент String, который обеспечивает лучший опыт работы со строками в приложениях PHP.

Новый инфлектор доступен через класс EnglishInflector (который отражает намерение расширить инфлектор на другие языки в будущем). Интерфейс остается прежним:

namespace Symfony\Component\String\Inflector;

interface InflectorInterface
{
    // the returned values are arrays because in some cases, there
    // are multiple valid singulars/plurals for a given word
    public function singularize(string $plural): array;
    public function pluralize(string $singular): array;
}

Вот как вы можете использовать его в своих приложениях:

use Symfony\Component\String\Inflector\EnglishInflector;

$inflector = new EnglishInflector();

$result = $inflector->singularize('teeth');   // ['tooth']
$result = $inflector->singularize('radii');   // ['radius']
$result = $inflector->singularize('leaves');  // ['leaf', 'leave', 'leaff']

$result = $inflector->pluralize('bacterium'); // ['bacteria']
$result = $inflector->pluralize('news');      // ['news']
$result = $inflector->pluralize('person');    // ['persons', 'people']

Комментарии