Skip to main content

Wat is de Str-klasse

De klasse Illuminate\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.
Bevat de string Japans, dan kan de slug leeg uitvallen. Wil je Japanse slugs gebruiken, overweeg dan een aparte romaji-conversiebibliotheek of gebruik een ID of timestamp in de URL.

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.
Ook in de Fluent-stijl bruikbaar.
Handig voor het tonen van aantallen in de UI in het Engels (het onderscheid tussen “1 item” en “meerdere items”). De opmaak met duizendtalscheiding wordt automatisch toegepast.

Fluent Strings (method chaining)

Begin met Str::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 blogartikel
Het domein uit een URL halen
Gebruikersinvoer opschonen
Een bestandspad genereren uit een klassenaam

Voorwaardelijk 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

Wanneer statische methoden gebruiken:
  • Als één of twee conversies volstaan
  • Voor eenvoudige, leesbare code
Wanneer Fluent (Str::of) gebruiken:
  • 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
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
Laatst gewijzigd op 6 september 2026