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
Antonio Jenaro

Web Developer

Archivado en:

Fuente: Harris Raftopoulos

Artículos relacionados

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

Mejorar la paginación con fragmentos de URL en Laravel

Forzar URLs HTTPS en Laravel
423

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