PHP HTML

Normalización de URLs Sociales en devlog-ist/landing para Enlaces Consistentes

Introducción

En el proyecto devlog-ist/landing, nos encontramos con un problema común: las URLs de redes sociales en los perfiles de usuario no siempre se almacenan con el protocolo https:// incluido. Esto causaba que se interpretaran como rutas relativas, llevando a enlaces incorrectos. La solución implementada fue normalizar estas URLs para asegurar que siempre apunten al destino correcto.

El Problema

Cuando un usuario ingresaba una URL de perfil social sin el prefijo https:// (por ejemplo, github.com/usuario), la aplicación la interpretaba incorrectamente. En lugar de dirigir a https://example.com/usuario, intentaba navegar a tenant.dominio/github.com/usuario, lo cual resultaba en un error.

La Solución: Métodos de Acceso en el Modelo de Perfil

Para solucionar este problema, se agregaron métodos de acceso (accessors) en el modelo Profile. Estos métodos se encargan de inspeccionar cada campo de URL social y, si no contienen el protocolo https://, se lo agregan automáticamente. Esto asegura que todas las URLs almacenadas y utilizadas en la aplicación sean absolutas y correctas.

Ejemplo ilustrativo de cómo podría verse el accessor:

class Profile extends Model
{
    public function getGithubUrlAttribute($value)
    {
        if ($value && ! Str::startsWith($value, 'https://')) {
            return 'https://' . $value;
        }
        return $value;
    }

    // Métodos similares para otras URLs sociales (Twitter, LinkedIn, etc.)
}

Resultado

Con la implementación de estos accessors, todas las URLs de perfiles sociales, independientemente de cómo se hayan ingresado originalmente, ahora funcionan correctamente. Esto mejora la experiencia del usuario y asegura la consistencia de los enlaces en la plataforma.

Próximos Pasos

Considerar la implementación de validación del formato de URL en el momento de la inserción o actualización de los datos para prevenir este tipo de problemas en el futuro. También, se podría generalizar la lógica en un trait reutilizable para otros modelos que requieran normalización de URLs.

Normalización de URLs Sociales en devlog-ist/landing para Enlaces Consistentes
Gerardo Ruiz

Gerardo Ruiz

Author

Share: