Оптимізація роботи зі рядками за допомогою методу string() у Laravel

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 01 лютого, 2025
В методі string() у Laravel вхідні дані перетворюються на об'єкти Stringable, надаючи можливість зручного маніпулювання рядками через ланцюгові виклики методів. Досліджуйте, як цей метод спрощує очищення та трансформацію вводу — читайте далі!

Метод `request->string()` у Laravel перетворює вхідні дані на екземпляри Stringable, надаючи можливість плавно маніпулювати рядками через ланцюговий виклик методів

// Основне перетворення
$name = $request->string('name')
    ->trim()
    ->title()
    ->limit(50);
 
// Вхідні дані
$request->input('name') = '  jANE mARY smith   ';
 
// Результат після перетворення методом string()
'Jane Mary Smith'

Ось приклад санітизації даних профілю:

<?php
 
namespace App\Http\Controllers;
 
use App\Models\Profile;
use Illuminate\Http\Request;
 
class ProfileController extends Controller
{
    public function update(Request $request, Profile $profile)
    {
        $profile->update([
            'display_name' => $request->string('name')
                ->trim()
                ->title()
                ->limit(50)
                ->toString(),
 
            'username' => $request->string('username')
                ->trim()
                ->lower()
                ->replaceMatches('/[^a-z0-9_-]/', '')
                ->limit(20)
                ->toString(),
 
            'bio' => $request->string('bio')
                ->trim()
                ->stripTags()
                ->limit(160)
                ->toString(),
 
            'website' => $request->string('website')
                ->trim()
                ->lower()
                ->replace(['http://', 'https://'], '')
                ->before('/')
                ->toString()
        ]);
 
        return response()->json([
            'message' => 'Профіль успішно оновлено',
            'profile' => $profile->fresh()
        ]);
    }
}

Метод `string()` спрощує санітизацію та перетворення вхідних даних через ланцюговий виклик методів, роблячи маніпуляції з рядками більш читабельними та зрозумілими