sly/url-shortener-bundle
Sly URL Shortener Bundle provides URL shortening capabilities for PHP applications, letting you create and manage compact links through a bundle-oriented integration. A lightweight option for adding short URL generation to your project.
Bottom line: the package name in the brief does not match the artifact. Ph3nol/UrlShortenerBundle is a Symfony bundle, not a Laravel package. There is no Laravel service provider, no facade, no Eloquent integration, and no config file in Laravel’s format. Treat this as a design reference to port, not a dependency to install. Score 1.67 with 0 dependents and 26 stars is consistent with what this is: a dormant 2013–2015 era Symfony 2 bundle.
Architecture fit
Integration feasibility
Technical risk — all High
goo.gl was shut down in 2019; the Google URL Shortener API no longer exists. bit.ly API v3 is deprecated in favor of v4 with OAuth tokens. A material share of the advertised functionality is non-functional by default.Key questions for the owning team
Stack fit
ShortLinkService, a ShortLinkDriver contract with InternalDriver and BitlyDriver implementations, Http:: for provider calls, Cache:: for hot redirects, a queued job for asynchronous provider calls, and a Route::get('/s/{code}') redirect controller.Migration path
composer.json.short_links (code unique, target_type, target_id, url, driver, created_by, timestamps, soft deletes); Eloquent model; base62 or random generator with a unique-constraint retry loop.Compatibility
Sequencing and effort
| Phase | Work | Est. |
|---|---|---|
| 0 | Decision + requirement confirmation (external provider or not) | 0.5d |
| 1 | Schema, model, code generator, internal driver | 2d |
| 2 | Redirect route, caching, tests | 2d |
| 3 | Optional bit.ly v4 driver, queued + retried | 1.5d |
| 4 | Admin UI, click accounting, metrics/alerts | 2d |
Roughly 6–8 developer-days to a production-grade internal shortener. Budgeting more than a day fighting the original bundle’s Composer constraints is a losing trade.
Maintenance
Support
Scaling
code; avoid a DB hit on the hot path.Failure modes to design against
Ramp-up
How can I help you explore Laravel packages today?