Робота з класом Uri у Laravel для вдосконалення маніпуляцій з URL

2
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 17 грудня, 2025
Досліджуйте потужність нового класу Uri у Laravel, який змінює спосіб роботи з URL. У нашій статті ви дізнаєтеся, як цей елегантний абстрактний інтерфейс спрощує складні трансформації URL та покращує читабельність коду

Laravel пропонує потужний клас Uri, який змінює підходи до роботи з URL. Це елегантне абстрагування забезпечує інтуїтивно зрозумілий інтерфейс для операцій з URI, спрощуючи складні трансформації URL.

Основна реалізація демонструє його зрозумілий синтаксис:

$uri = Uri::of('https://laravel.com')
    ->withQuery(['name' => 'Taylor'])
    ->withPath('/docs/installation')
    ->withFragment('hello-world');
// https://laravel.com/docs/installation?name=Taylor#hello-world

Ось практичний приклад використання класу Uri у сервісі розподілу контенту:

class ContentDistribution
{
    public function createCampaignUrl(string $baseUrl, Campaign $campaign)
    {
        return Uri::of($baseUrl)
            ->withPath('/content/' . $campaign->slug)
            ->withQuery([
                'source' => $campaign->source,
                'medium' => $campaign->medium,
                'campaign' => $campaign->name,
                'token' => $this->generateToken($campaign->id)
            ]);
    }
 
    public function buildEmbeddableLinks(Media $media)
    {
        $baseUrl = config('app.media_url');
        $mediaUrl = Uri::of($baseUrl)->withPath('/embed/' . $media->uuid);
 
        return [
            'standard' => (string) $mediaUrl,
            'autoplay' => (string) $mediaUrl->withQuery(['autoplay' => 1]),
            'timestamped' => (string) $mediaUrl->withQuery([
                'start' => $media->highlight_timestamp,
                'theme' => 'dark'
            ]),
            'iframe_src' => (string) $mediaUrl->withQuery(['iframe' => 1])
        ];
    }
}

Клас Uri в Laravel значно покращує читабельність коду при роботі зі складними URL, забезпечуючи при цьому безпечніший спосіб маніпуляції URL, що запобігає поширеним помилкам у конкатенації рядків

Популярні

Logomark Logotype

Налаштування Xdebug з Docker та PHP 8.4 всього за одну хвилину

Встановлення Xdebug може бути складним завданням, але в цій статті ми розкриємо, як швидко та просто налаштувати його за допомогою Docker на прикладі Laravel. Дочитайте до кінця, щоб дізнатися, як за кілька хвилин зробити Xdebug вашим надійним помічником у розробці

Logomark Logotype

Перетворення даних у типобезпечні DTO за допомогою пакету Data Model

Досліджуйте новий пакет Data Model для PHP, який спрощує процес гідратації об'єктів без зайвих складнощів! Дізнайтеся, як впровадження типобезпечних об'єктів може революціонізувати ваш підхід до розробки, читаючи нашу статтю

Logomark Logotype

Журнал аудиту в Laravel

Хочете забезпечити повну прозорість у своїх Laravel-додатках? Пакет Laravel Audit Log допоможе вам детально відстежувати всі зміни моделей Eloquent та відповідати вимогам регуляторів. Читайте далі, щоб дізнатися, як цей потужний інструмент може підвищити надійність вашого проєкту