Was ist die Str-Klasse
Die KlasseIlluminate\Support\Str bietet eine umfangreiche Sammlung von Methoden zur String-Verarbeitung. Statt die einzelnen PHP-Standardfunktionen zu verwenden, arbeiten Sie mit einer einheitlichen, intuitiven Schnittstelle.
Laravel unterstützt zwei Stile der String-Verarbeitung:
- Statischer Stil:
Str::slug($title, '-')— geeignet für einzelne Operationen. - Fluent-Stil (Method Chaining):
Str::of($title)->slug('-')->limit(50)— mehrere Operationen lassen sich verketten.
Die globale Hilfsfunktion
str() entspricht Str::of(). Sie können also str('hello')->upper() schreiben.Groß-/Kleinschreibung und Notation umwandeln
Methoden zum Umwandeln der Schreibweise von Strings (Groß-/Kleinschreibung, Notation). Häufig verwendet, um Datenbankspalten oder Schlüssel in API-Antworten umzubenennen.Str::camel() / Str::snake() / Str::kebab() / Str::studly()
Str::lower() / Str::upper() / Str::title()
Slugs und URLs
Str::slug() — URL-freundlichen Slug erzeugen
Unverzichtbar, wenn Sie URLs für Artikel oder Seiten erzeugen möchten. Leerzeichen und Sonderzeichen werden umgewandelt, sodass ein URL-sicherer String entsteht.
Mit Str::of() Slug-Erzeugung und Bereinigung in einem Rutsch
Strings kürzen
Str::limit() — nach Zeichenanzahl kürzen
Ideal, um Vorschautexte für Artikelinhalte oder Kommentare in Listen zu erzeugen.
Str::words() — nach Wortanzahl kürzen
Strings suchen und prüfen
Str::contains() — prüfen, ob ein String enthalten ist
Str::startsWith() / Str::endsWith()
Str::is() — Pattern-Matching mit Wildcards
Strings umwandeln und ersetzen
Str::replace() — Strings ersetzen
Str::replaceArray() — der Reihe nach aus einem Array ersetzen
Str::replaceMatches() — per Regex ersetzen
Str::remove() — Strings entfernen
Str::squish() — überflüssige Leerzeichen entfernen
Anfang und Ende bearbeiten
Str::before() / Str::after()
Str::between() — Text zwischen zwei Strings extrahieren
Str::start() / Str::finish() — mit bestimmtem Zeichen beginnen/enden lassen
Beginnt der String bereits mit dem Zeichen, wird nichts hinzugefügt (keine doppelten Zeichen).
Str::chopStart() / Str::chopEnd() — bestimmten Präfix/Suffix entfernen
Maskierung und Sicherheit
Str::mask() — Strings maskieren
Nützlich, um Teile von E-Mail-Adressen oder Telefonnummern zu verbergen.
Str::excerpt() — Textausschnitt mit Kontext
Praktisch für Snippet-Darstellungen in Suchergebnissen.
Zufällige Strings und Identifier
Str::random() — zufälligen String erzeugen
Wird häufig zum Erzeugen von Tokens oder Schlüsseln für Passwort-Resets verwendet.
Str::uuid() / Str::ulid() — UUIDs und ULIDs erzeugen
Str::password() — sicheres Passwort erzeugen
Str::counted() — Singular/Plural mit Anzahl
Wandelt einen Begriff je nach Zahl in Singular oder Plural um und gibt ihn zusammen mit der formatierten Zahl zurück.
Fluent Strings (Method Chaining)
Beginnen Sie mitStr::of() oder str(), erhalten Sie eine Stringable-Instanz und können Methoden verketten. Um das Ergebnis final als String zu verwenden, casten Sie mit (string) oder nutzen es in einem String-Kontext.
Praktische Beispiele für Method Chaining
Slug für einen Blogbeitrag erzeugenBedingte Verkettung (when())
pipe() — beliebige Callbacks einschieben
Übersicht wichtiger Methoden von Str::of()
Fluent Strings bieten weitgehend dieselben Methoden wie die statische API. Eine Auswahl:
Zusammenfassung
Übersicht häufig verwendeter Str-Methoden
Übersicht häufig verwendeter Str-Methoden
Statische Methode vs. Fluent (Str::of)
Statische Methode vs. Fluent (Str::of)
Statische Methode verwenden:Fluent (Str::of) verwenden:
- Wenn nur ein oder zwei Umwandlungen nötig sind
- Für einfachen, gut lesbaren Code
- Wenn drei oder mehr Umwandlungen zusammengefasst werden
- Bei bedingten Verzweigungen (
when()) - Wenn der Ablauf von oben nach unten lesbar sein soll
Str-Klasse vs. PHP-Standardfunktionen
Str-Klasse vs. PHP-Standardfunktionen
Wenn Sie statt PHP-Standardfunktionen wie
strtolower(), substr() oder str_replace() die Str-Klasse verwenden:- Sie können Multibyte-Zeichen (z. B. Japanisch) sicher verarbeiten (intern kommen
mb_*-Funktionen zum Einsatz) - Sie können Operationen per Method Chaining kompakt schreiben
- Sie müssen sich keine Argument-Reihenfolgen merken (konsistente Schnittstelle)
- Ihr Code entspricht dem Code-Stil von Laravel