Laravel Tutorials

Working with Laravel's Uri Class for Enhanced URL Manipulation

Published
Working with Laravel's Uri Class for Enhanced URL Manipulation image

Laravel introduces a powerful Uri class that transforms how you handle and manipulate URLs. This elegant abstraction provides a fluent interface for URI operations, making complex URL transformations more intuitive.

The basic implementation showcases its clean syntax:

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

Here's a practical example demonstrating Uri class usage in a content distribution service:

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])
];
}
}

Laravel's Uri class significantly improves code readability when working with complex URLs, while providing a safer approach to URL manipulation that avoids common string concatenation errors.

Harris Raftopoulos photo

Senior Software Engineer • Staff & Educator @ Laravel News • Co-organizer @ Laravel Greece Meetup

Sponsored

serpapi logo
SerpApi

The Web Search API for Your LLM and AI Applications

Visit SerpApi

The latest

View all →
Delete Expired Sessions in Laravel With a Scheduled Command image

Delete Expired Sessions in Laravel With a Scheduled Command

Read article
Pollora: Run WordPress Inside a Laravel Application image

Pollora: Run WordPress Inside a Laravel Application

Read article
Scheduled Session Garbage Collection in Laravel 13.39 image

Scheduled Session Garbage Collection in Laravel 13.39

Read article
Deferred Schema Loading in Filament v5.8 image

Deferred Schema Loading in Filament v5.8

Read article
Sloppy: Static Analysis for AI-Written PHP image

Sloppy: Static Analysis for AI-Written PHP

Read article
Mastering Laravel Testing: A Video Course on Laravel Tests image

Mastering Laravel Testing: A Video Course on Laravel Tests

Read article