Transforma una URL en Laravel con la clase Uri

  • Publicado el 16 enero, 2025
  • Palabras: 41

Transforma la forma en la que trabajas con las URLs en Laravel con la nueva clase Uri. Esta poderosa abstracción hace que la manipulación de URL sea más intuitiva y fácil de mantener que nunca.

Transforma una URL en Laravel con la clase Uri

#Uso básico

Cree y maneje URI con una interfaz fluida:

 

use IlluminateSupportUri;

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

// https://antoniojenaro.com/docs/installation?name=Antonio#hello-world

 

#Ejemplo práctico

A continuación se explica cómo podría usarlo en un sistema de gestión de enlaces:

 

class LinkManager
{
    public function createTrackableLink(string $destination, array $params = [])
    {
        $uri = Uri::of($destination)
            ->withQuery(array_merge(
                $params,
                ['utm_source' => 'newsletter', 'ref' => uniqid()]
            ));

        return Link::create([
            'original_url' => $destination,
            'tracked_url' => (string) $uri,
            'params' => $uri->query()->decode()
        ]);
    }

    public function generateSocialShareLinks(Post $post)
    {
        $url = Uri::route('posts.show', $post);

        return [
            'twitter' => Uri::of('https://twitter.com/intent/tweet')
                ->withQuery([
                    'url' => (string) $url,
                    'text' => $post->title
                ]),
                
            'facebook' => Uri::of('https://www.facebook.com/sharer/sharer.php')
                ->withQuery(['u' => (string) $url]),
                
            'linkedin' => Uri::of('https://www.linkedin.com/shareArticle')
                ->withQuery([
                    'url' => (string) $url,
                    'title' => $post->title,
                    'mini' => true
                ])
        ];
    }
}

 

La clase Uri proporciona una interfaz limpia y fluida para todas sus necesidades de manipulación de URL.

Antonio Jenaro

Desarrollador backend especializado en PHP y Laravel, con sede en Santander, Cantabria. Más de 15 años de experiencia en el desarrollo de aplicaciones web a medida y en la modernización de código heredado.

Archivado en:

Fuente: Harris Raftopoulos

Artículos relacionados

Mejorar la paginación con fragmentos de URL en Laravel
147

Mejorar la paginación con fragmentos de URL en Laravel

Forzar URLs HTTPS en Laravel
450

Forzar URLs HTTPS en Laravel

Inicia la conversación

Hazte miembro de Antonio Jenaro para comenzar a comentar.

Regístrate ahora

¿Ya estás registrado? Inicia sesión