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
| Methode | Verwendung |
|---|---|
Str::slug($str) | URL-freundlichen Slug erzeugen |
Str::limit($str, $n) | Nach Zeichen kürzen |
Str::contains($str, $needle) | Prüfen, ob String enthalten ist |
Str::startsWith($str, $needle) | Prüfen, ob mit angegebenem Text beginnt |
Str::endsWith($str, $needle) | Prüfen, ob mit angegebenem Text endet |
Str::replace($search, $replace, $str) | String ersetzen |
Str::camel($str) | In camelCase umwandeln |
Str::snake($str) | In snake_case umwandeln |
Str::kebab($str) | In kebab-case umwandeln |
Str::studly($str) | In StudlyCase umwandeln |
Str::upper($str) | In Großbuchstaben umwandeln |
Str::lower($str) | In Kleinbuchstaben umwandeln |
Str::squish($str) | Überflüssige Leerzeichen entfernen |
Str::after($str, $search) | Text nach angegebenem String |
Str::before($str, $search) | Text vor angegebenem String |
Str::between($str, $from, $to) | Text zwischen zwei Strings |
Str::mask($str, '*', $index) | String maskieren |
Str::random($length) | Zufälligen String erzeugen |
Str::uuid() | UUID erzeugen |
Str::of($str) | Fluent-Stil starten |
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