Wat is de Str-klasse
De klasseIlluminate\Support\Str biedt een rijke set methoden voor stringbewerkingen. In plaats van de standaard stringfuncties van PHP los aan te roepen, verwerk je strings intuïtief via een uniforme interface.
Er zijn twee stijlen voor stringbewerkingen in Laravel:
- Statische-methodenstijl:
Str::slug($title, '-')— geschikt voor losse bewerkingen - Fluent-stijl (method chaining):
Str::of($title)->slug('-')->limit(50)— hiermee koppel je meerdere bewerkingen aan elkaar
De globale helperfunctie
str() is gelijkwaardig aan Str::of(). Je kunt dus schrijven als str('hello')->upper().Case-conversie
Methoden om de case (hoofdletters, kleine letters, notatie) van een string te converteren. Vaak gebruikt voor databasekolomnamen en het converteren van sleutels in API-responses.Str::camel() / Str::snake() / Str::kebab() / Str::studly()
Str::lower() / Str::upper() / Str::title()
Slugs en URL’s
Str::slug() — een URL-vriendelijke slug genereren
Een onmisbare methode bij het genereren van URL’s voor artikelen en pagina’s. Zet spaties en speciale tekens om en produceert een string die veilig is voor URL’s.
Van sluggeneratie tot validatie in één keer met Str::of()
Strings afkappen
Str::limit() — afkappen op aantal tekens
Een methode om previewtekst te genereren bij het tonen van een overzicht van artikelen of reacties.
Str::words() — afkappen op aantal woorden
Strings zoeken en controleren
Str::contains() — controleren of een string iets bevat
Str::startsWith() / Str::endsWith()
Str::is() — matchen met wildcardpatronen
Strings converteren en vervangen
Str::replace() — een string vervangen
Str::replaceArray() — op volgorde vervangen met een array
Str::replaceMatches() — vervangen met reguliere expressies
Str::remove() — een string verwijderen
Str::squish() — overtollige witruimte verwijderen
Bewerkingen op het begin en einde van strings
Str::before() / Str::after()
Str::between() — het deel tussen twee strings ophalen
Str::start() / Str::finish() — laten beginnen/eindigen met een bepaald teken
Begint de string al met dat teken, dan wordt er niets toegevoegd (geen verdubbeling).
Str::chopStart() / Str::chopEnd() — een specifiek voor- of achtervoegsel verwijderen
Maskeren en beveiliging
Str::mask() — een string maskeren
Gebruik je om delen van e-mailadressen of telefoonnummers te verbergen.
Str::excerpt() — een fragment met context uit een string halen
Gebruik je bijvoorbeeld voor het tonen van snippets bij zoekresultaten.
Willekeurige strings en identifiers
Str::random() — een willekeurige string genereren
Gebruik je voor het genereren van tokens of sleutels voor wachtwoordresets.
Str::uuid() / Str::ulid() — UUID’s en ULID’s genereren
Str::password() — een veilig wachtwoord genereren
Str::counted() — enkelvoud/meervoud met aantal
Zet om naar enkelvoud of meervoud op basis van het getal en geeft dit samen met het geformatteerde getal terug.
Fluent Strings (method chaining)
Begin metStr::of() of str() en je krijgt een Stringable-instantie terug waarop je methoden kunt chainen. Wil je het eindresultaat als string gebruiken, cast dan met (string) of gebruik het in een stringcontext.
Praktische voorbeelden van method chaining
Een slug genereren voor een blogartikelVoorwaardelijk chainen (when())
pipe() — een willekeurige callback tussenvoegen
Overzicht van de belangrijkste methoden bij Str::of()
De methoden bij Fluent Strings zijn vrijwel dezelfde set als de statische methoden. Hieronder de meest representatieve.
Samenvatting
Overzicht van veelgebruikte Str-methoden
Overzicht van veelgebruikte Str-methoden
Statische methoden vs Fluent (Str::of)
Statische methoden vs Fluent (Str::of)
Wanneer statische methoden gebruiken:Wanneer Fluent (Str::of) gebruiken:
- Als één of twee conversies volstaan
- Voor eenvoudige, leesbare code
- Als je drie of meer conversies achter elkaar uitvoert
- Als er voorwaardelijke logica (
when()) bij zit - Als je de verwerkingsflow van boven naar beneden leesbaar wilt houden
De Str-klasse vs de standaardfuncties van PHP
De Str-klasse vs de standaardfuncties van PHP
Door de
Str-klasse te gebruiken in plaats van standaardfuncties zoals strtolower(), substr() en str_replace():- Ga je veilig om met multibyte-tekens (Japans) (intern worden
mb_*-functies gebruikt) - Kun je bewerkingen bundelen met method chaining
- Hoef je de volgorde van argumenten niet te onthouden (consistente interface)
- Blijft je code in de Laravel-codestijl