Manejo de cadenas de texto en Laravel

Laravel nos ofrece varias clases de ayuda o helpers para modificar ciertos elementos o tipos de datos dentro de nuestras aplicaciones. En esta lección te enseñaremos algunos helpers que se encargan del manejo de cadenas de texto.

Str::camel()

El método Str::camel asigna el estilo de escritura camelCase a una cadena. El nombre se debe a la diferencia entre las mayúsculas y las minúsculas en la palabra, semejando a las jorobas de un camello. Es muy utilizado para los nombres de las funciones. Ejemplo:

$camel = Str::camel('mi_variable');
// miVariable

class_basename()

Esta función toma como parámetro la ruta completa de una clase y nos devuelve solo el nombre. Ejemplo:

$class = class_basename('App\Http\Controllers\MailController');
// MailController

e()

Esta función nos devuelve el código HTML escapado, Ejemplo:

e('<p>El texto</p>');
// &lt;p&gt;El texto&lt;/p&gt;

Esta función usa htmlentities internamente.

Str::endsWith()

Este método determina si la cadena termina en un valor dado. Ejemplo:

$value = Str::endsWith('Esto es un texto de prueba', 'prueba');
// true

$value = Str::endsWith('Esto es un texto de prueba', 'esto');
// false

También se puede pasar un array para determinar si la cadena dada termina con alguno de los valores dados:

$value = Str::endsWith('Esto es un texto de prueba', ['prueba', 'styde']);
// true

$value = Str::endsWith('Esto es un texto de prueba', ['laravel', 'styde']);
// false

Str::snake()

Este método le asigna el estilo de snake_case a la cadena. Este estilo es utilizado para nombre de variables, nombre de archivos, entre otros. Ejemplo:

$snake = Str::snake('miVariable');
// mi_variable

Str::limit()

Este método limita el número de caracteres que se van a mostrar en la cadena. Su primer parámetro es la cadena y el segundo el número máximo de caracteres (entero).

$value = Str::limit('Laravel es un framework que se utiliza para:', 23);
// Laravel es un framework...

También se puede pasar un valor como tercer argumento para cambiar la cadena que se agrega al final:

$value = Str::limit('Laravel es un framework que se utiliza para:', 23, ' (...)');
// Laravel es un framework (...)

Str::startsWith()

Este método determina si la cadena inicia en un valor dado. Ejemplo:

$value = Str::startsWith('Esto es un texto de prueba', 'Esto');
// true

$value = Str::startsWith('Esto es un texto de prueba', 'prueba');
// false

Str::contains()

Determina si una cadena de texto se encuentra en otra. El primer parámetro es la cadena y el segundo es la que se va a buscar.

$value = Str::contains('Laravel es un framework que se utiliza para', 'framework');
// true

$value = Str::contains('Laravel es un framework que se utiliza para', 'php');
// false

También se puede pasar un arreglo para determinar si la cadena dada contiene alguno de los valores dados:

$value = Str::contains('Laravel es un framework que se utiliza para', ['framework', 'styde']);
// true

$value = Str::contains('Laravel es un framework que se utiliza para', ['laravel', 'styde']);
// false

Str::finish()

Este método nos permite agregar al final de una cadena cualquier otra cadena. El primer argumento es la cadena original, el segundo argumento es la cadena que se quiere agregar. Ejemplo:

$cadena = Str::finish('El perro', ' es un animal.');
// El perro es un animal.

Str::is()

Este método determina si una cadena de texto comienza con otra dada. Es parecido a Str::contains(), pero en éste tenemos un comodín (*) que permite que la cadena a buscar, pueda o no, continuar con otros caracteres. El primer parámetro es la cadena a buscar y el segundo es la cadena donde se buscará. Ejemplo:

$value = Str::is('Estu*', 'Estudiando los helpers de Laravel');
// true

$value = Str::is('Lara*', 'Estudiando los helpers de Laravel');
// false

Str::plural()

Este método convierte la cadena de su forma singular a su forma plural. Actualmente solo funciona con el idioma inglés.

$plural = Str::plural('table');
// tables

Puedes utilizar un entero como segundo parámetro de la función, el cual va a condicionar si se utilizará la forma singular o plural. Ejemplo:

$plural = Str::plural('child', 2);
// children
    
$plural = Str::plural('child', 1);
// child

Str::random()

Este método genera una cadena de caracteres aleatorios, utiliza como argumento la longitud que deseamos que tenga la cadena. Ejemplo:

$cadena = Str::random(20);
// j7AoBuaz4Jg2hePAu7Fi

Str::singular()

Este método convierte la cadena de su forma plural a su forma singular. Actualmente solo funciona con el idioma inglés. Ejemplo:

$singular = Str::singular('tables');
// table

$singular = Str::singular('children');
// child

Str::slug()

Este método nos ayuda a construir URLs amigables a partir de una cadena dada, como podría ser un título, un nombre propio, etc. El primer argumento que recibe es la cadena y el segundo es el carácter:

$titulo = Str::slug("Este es el titulo de mi post", "-");
// este-es-el-titulo-de-mi-post

Str::studly()

Este método le asigna el estilo de escritura StudlyCase a la cadena, es decir, capitaliza todas las palabras de la cadena y elimina los espacios en blanco. Ejemplo:

$camel = Str::studly('Hola mundo');
// HolaMundo

trans()

Esta función nos devuelve la traducción de la cadena que se encuentra en los archivos de idiomas. Ejemplo:

echo trans('messages.welcome');

Puede dar como resultado WelcomeBienvenido (dependiendo de la configuración de idioma de la aplicación y del mensaje traducido a dicho idioma:

//messages.php en /resources/lang/en/
return [
  'welcome' => 'Welcome'
];

//messages.php en /resources/lang/es/
return [
  'welcome' => 'Bienvenido'
];

Si la llave de traducción especificada no existe, la función trans devolverá la misma llave dada.

trans_choice()

Esta función es parecida a trans(), pero acepta un segundo argumento que permite elegir cuál de las frases se va a mostrar. Ejemplo:

Este sería nuestro archivo de traducción:

//messages.php in /resources/lang/es/
return [
    'people' => '{0} No asistió nadie
                  |{1} Asistió una persona
                  |[2,4] Asistieron algunas personas
                  |[5,*] Asistieron muchas personas',
];

Como puedes observar:

  • {}  indica un solo valor.
  • []   indica un rango de valores.
  • *     indica infinito.

Así utilizamos la función:

echo trans_choice('messages.people', 0);
// No asistió nadie

echo trans_choice('messages.people', 1);
// Asistió una persona

echo trans_choice('messages.people', 3);
// Asistieron algunas personas

echo trans_choice('messages.people', 10);
// Asistieron muchas personas

Si la llave de traducción especificada no existe, la función trans_choice devolverá la llave dada.

Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.