Esplorare la Classe Str in Laravel – Dai Metodi Base alle Macro
scritto tempo fa
La classe Str di Laravel è un potente strumento per la manipolazione delle stringhe, spesso trascurato. Oltre ai metodi integrati, offre la possibilità di estendere le sue funzionalità utilizzando le Macro. Questo articolo ti guiderà attraverso i metodi principali, alcuni casi d’uso pratici e l’implementazione di macro personalizzate per personalizzare le operazioni sulle stringhe.

Metodi Base di Str
1. Str::slug
Converte una stringa in formato URL-friendly.
use Illuminate\Support\Str;
$slug = Str::slug('Documentazione Tecnica Laravel', '-');
// Risultato: "documentazione-tecnica-laravel"
2. Str::random
Genera una stringa casuale di lunghezza specificata.
$random = Str::random(10);
// Esempio di output: "x2g5q3lkjt"
3. Str::contains
Verifica se una stringa contiene un valore specifico.
$contains = Str::contains('Laravel è fantastico', 'fantastico');
// Risultato: true
4. Str::startsWith e Str::endsWith
Controlla se una stringa inizia o termina con un determinato valore.
$startsWith = Str::startsWith('framework', 'frame'); // true
$endsWith = Str::endsWith('framework', 'work'); // true
Macro Personalizzate con Str
Le Macro ti permettono di estendere la classe Str con nuovi metodi, personalizzando le operazioni sulle stringhe.
Esempio 1: Macro per Convertire in “Upper Snake Case”
Definisce una macro per convertire una stringa in formato SNAKE_CASE con lettere maiuscole.
Definizione della Macro
use Illuminate\Support\Str;
Str::macro('upperSnake', function ($value) {
return strtoupper(Str::snake($value));
});
Utilizzo della Macro
$result = Str::upperSnake('EsempioDiStringa');
// Risultato: "ESEMPIO_DI_STRINGA"
Esempio 2: Macro per la Rotazione delle Stringhe
Crea una macro che ruoti una stringa di un numero specificato di caratteri.
Definizione della Macro
Str::macro('rotate', function ($value, $positions) {
return substr($value, $positions) . substr($value, 0, $positions);
});
Utilizzo della Macro
$result = Str::rotate('Laravel', 3);
// Risultato: "avelLar"
Esempio 3: Macro per Convertire in “Studly Kebab Case”
Combina il formato StudlyCase e Kebab-case.
Definizione della Macro
Str::macro('studlyKebab', function ($value) {
return Str::kebab(Str::studly($value));
});
Utilizzo della Macro
$result = Str::studlyKebab('esempio di stringa personalizzata');
// Risultato: "Esempio-Di-Stringa-Personalizzata"
Altri Metodi Utili di Str
1. Str::after
Ritorna la porzione della stringa dopo un valore specifico.
$result = Str::after('[email protected]', '@');
// Risultato: "example.com"
2. Str::before
Ritorna la porzione della stringa prima di un valore specifico.
$result = Str::before('[email protected]', '@');
// Risultato: "user"
3. Str::title
Trasforma una stringa in formato Title Case.
$result = Str::title('laravel è fantastico');
// Risultato: "Laravel È Fantastico"
4. Str::padBoth
Aggiunge caratteri di padding su entrambi i lati di una stringa.
$result = Str::padBoth('Laravel', 10, '*');
// Risultato: "**Laravel**"
❓ Quando Usare le Macro?
Le macro sono utili quando hai operazioni ripetitive sulle stringhe che non sono già coperte dai metodi di Str. Ad esempio:
• Formattazione di stringhe specifiche per il dominio del tuo progetto.
• Operazioni complesse su stringhe che richiedono più passaggi.
• Estensione delle funzionalità di Str per adattarle alle tue esigenze.
La classe Str di Laravel è una risorsa versatile e potente per la manipolazione delle stringhe. Con i suoi numerosi metodi e la possibilità di estendere le funzionalità con le macro, Str può semplificare significativamente il tuo lavoro con le stringhe. Esplora i metodi, definisci le tue macro e trasforma il modo in cui gestisci le stringhe nei tuoi progetti Laravel.
Se hai bisogno di ulteriori suggerimenti su come implementare Str nel tuo progetto, lascia un commento o condividi le tue idee!
Ricevi le ultime novità
Circa l'autore
Salve il mio nome come avrete notato e Giueppe Alessandro De Blasio e questo è il mio blog, tutto nasce dalla passione per la tecnologia e per il web in generale, ed oggi lo utilizzo come mezzo di condivisione. Spero che la vostra permanenza sul mio blog vi sia utile e che decidiate di diventare miei affezionati lettori.