Search by

microweber-packages / microweber-url

boksiora

URL management package for Microweber - can be used standalone with any Laravel application

Package info

github.com/microweber-packages/microweber-url

pkg:composer/microweber-packages/microweber-url

Statistics

Installs: 52

Dependents: 6

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-11-03 11:20 UTC

This package is auto-updated.

Last update: 2026-11-03 17:07:52 UTC


README

A reusable Laravel package for URL management, slug generation, URL security validation, and transliteration.

Installation

composer require microweber-packages/microweber-url

The package uses Laravel auto-discovery, so the service provider will be registered automatically.

Usage

UrlManager

use MicroweberPackages\Url\UrlManager;

$urlManager = Url::getFacadeRoot();

// Get site URL
$url = $urlManager->site_url('path/to/page');

// Get hostname
$hostname = $urlManager->hostname();

// Generate slug
$slug = $urlManager->slug('Hello World: My Page');

// Get current URL
$current = $urlManager->current();

// URL segments
$segments = $urlManager->segments();
$segment = $urlManager->segment(0);

// Replace/restore site URL placeholders
$replaced = $urlManager->replace_site_url($data);
$restored = $urlManager->replace_site_url_back($data);

// Clean dangerous URL wrappers
$clean = $urlManager->clean_url_wrappers($path);

URLify (Transliteration)

use MicroweberPackages\Url\URLify;

// Filter text to URL-safe slug
echo URLify::filter("J'étudie le français");
// Output: "jetudie-le-francais"

// Transliterate characters
echo URLify::transliterate('café');
// Output: "cafe"

UrlSecurity

use MicroweberPackages\Url\UrlSecurity;

// Check if URL is safe for remote fetching
$safe = UrlSecurity::isSafeRemoteUrl('https://example.com/image.jpg'); // true
$safe = UrlSecurity::isSafeRemoteUrl('javascript:alert(1)'); // false

// Sanitize URL for CSS url() context
$cssUrl = UrlSecurity::safeCssUrl($userUrl);

Testing

cd packages/microweber-url
../../vendor/bin/phpunit

License

MIT

Standalone validation

A minimal Laravel (Orchestra Testbench) app lives in standalone-validation/:

cd standalone-validation
composer install
./vendor/bin/phpunit

Static analysis

# From monorepo root (level 7 maximized)
composer analyse -- packages/microweber-url/src
# Or package config
../../vendor/bin/phpstan analyse -c phpstan.neon.dist