Nuevo en Symfony 4.3: Mejorado el componente Inflector

Symfony incluye un componente llamado Inflector, que está indicado solo para uso interno y que por eso es tan poco conocido. La única funcionalidad que proporciona el component es convertir palabras en inglés del plural al singular. Lo utilizan los componentes PropertyInfo y PropertyAccess para generar el nombre en singular de una propiedad a partir de su método setter en plural:

use Symfony\Component\Inflector\Inflector;
 
$result = Inflector::singularize('teeth');  // tooth
$result = Inflector::singularize('radii');  // radius

En Symfony 4.3 hemos mejorado este componente de varias formas. Primero, hemos eliminado la etiqueta @internal de su código, por lo que este componente ya no es de uso interno y puedes usarlo en tus aplicaciones como cualquier otro componente.

En segundo lugar, hemos mejorado sus funcionalidades para que también pueda hacer la conversión inversa: transformar una palabra del singular al plural con el nuevo método 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

En ocasiones la conversión singular/plural y viceversa no son únicas, así que estos métodos pueden devolver un array con más de una solución para que tu elijas:

use Symfony\Component\Inflector\Inflector;
 
Inflector::singularize('leaves');  // ['leaf', 'leave', 'leaff']
Inflector::pluralize('person');    // ['persons', 'people']

Para más información, puedes leer la documentación del componente Inflector.

Esta funcionalidad fue contribuida por Michael Babker y Nicolas Grekas en los pull requests #26890 y #30810.

Fuente: New in Symfony 4.3: Better inflector

Comentarios

Publicada el

10 de junio de 2019

Etiquetas

Proyectos Symfony destacados

La plataforma de eCommerce 100% Symfony que rivaliza con Magento y PrestaShop. Ver más

Síguenos en @symfony_es para acceder a las últimas noticias.