Nuevo en Symfony 5.1: Nuevos métodos para trabajar con cadenas de texto
El componente String se presentó en Symfony 5.0 como una funcionalidad experimental. En Symfony 5.1 lo hemos mejorado con nuevas funcionalidades.
Uso de la interfaz Stringable
PHP 8 se publicará en diciembre de 2020, pero ya puedes usar algunas de sus
funcionalidades gracias al polyfill PHP 8 de Symfony. En Symfony 5.1 usamos
ese polyfill para hacer que todos los objetos relacionados con cadenas de texto
implementen la interfaz Stringable
.
Esto te permitirá usar tipos como string|Stringable
en tu código cuando más
adelante actualices tu aplicación a PHP 8.
Esta funcionalidad fue contribuida por Nicolas Grekas en el pull request #36059.
Mantener la última palabra al cortar texto
Cuando cortas texto con el método truncate()
, es habitual tener que dejar la
última palabra entera, aunque eso suponga generar una cadena un poco más larga
de los deseado.
Esto es ahora posible gracias a un argumento opcional llamado cut
que es
true
por defecto. Si lo pones a false
, la última palabra no se corta:
use function Symfony\Component\String\u; u('Lorem Ipsum')->truncate(8, '…'); // 'Lorem I…' u('Lorem Ipsum')->truncate(8, '…', false); // 'Lorem Ipsum'
Esta funcionalidad fue contribuida por Fran Moreno en el pull request #35649.
Añadido el método containsAny()
Otra necesidad habitual cuando se trabaja con cadenas de texto es tener que
comprobar si una cadena contiene a otra. Por eso hemos añadido el método
containsAny()
, que no solo comprueba eso sino que también puede comprobar si
una cadena contiene al menos una de todas las cadenas que se la pasan:
use function Symfony\Component\String\u; u('aeiou')->containsAny('a'); // true u('aeiou')->containsAny(['ab', 'efg']); // false u('aeiou')->containsAny(['eio', 'foo', 'z']); // true
Esta funcionalidad fue contribuida por Nicolas Grekas en el pull request #35936.
Añadido el método reverse()
En Symfony 5.1 también hemos añadido el método reverse()
, que cambia el orden
de los contenidos de la cadena de texto para darle la vuelta:
use function Symfony\Component\String\u; u('foo bar')->reverse(); // 'rab oof' u('さよなら')->reverse(); // 'らなよさ'
Esta funcionalidad fue contribuida por Thomas Calvet en el pull request #35091.
Otras mejoras
- El slugger incluido en el componente cambia algunos caracteres para generar
mejores slugs. Por ejemplo reemplaza
@
porat
. En Symfony 5.1 también reemplazará&
porand
(este cambio fue contribuido por Warxcell en #35689). - Hemos añadido un atajo llamado
s()
para generar rápidamente un objeto de tipo string sin que tengas que pensar si quieres generar un unicode string (cuyo atajo esu()
) o un binary string (cuyo atajo esb()
) (este cambio fue contribuido por Thomas Calvet en #35625). - El método
width()
, que devuelve la anchura necesaria para mostrar un carácter en la consola, ahora sigue el estándar POSIX.1-2001 (este cambio fue contribuido por Thomas Calvet en #35156).
Fuente: New in Symfony 5.1: String improvements
Comentarios
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.