Hacker News new | ask | show | jobs
Polr – A modern, minimalist, and lightweight URL shortener in PHP (github.com)
53 points by cydrobolt 3565 days ago
10 comments

Not to dis Polr, but if performance and minimalism are your thing, there are a lot of nginx + lua + redis URL shorteners on github.

Two random'ish selections...

https://gist.github.com/MendelGusmao/2356310

https://github.com/sanshi0518/shorturl-nginx

Just a few seconds of searching for a go based one yielded: https://github.com/samwierema/go-url-shortener
Minimalism and Redis don't go hand-in-hand at all.
Yes, 4192 files and 32MiB, quite minimal.
Maybe it's some kind of dadaist minimalism?
Why is the entire vendor directory in github? I'm fairly certain some of those packages cannot be redistributed like that.
Agree. What is the point of using composer or any dependency manager if you check-in the vendor folder?
Because your project is useless when a dependency is removed in the future. It happened to me one time and now I'm really considering to include the vendor folder in my own repository.

Of course a dependency manager is still very useful to setup a new project.

Wouldn't a minimalist implementation just look up shortened URLs in a map and spit out a redirect to the original URL? Seems like that could be done in a few KiB.
TBH, You can pretty much do a single PHP file, with no dependencies, and without mod_rewrite. Just site.com/?fDS- for example, and it redirects. Storage can be MySQL or some other DB or even a flat file with locking.
Congratulations on the release but I can just discourage people to use URL shorteners. They obfuscate key information, are potentially a security risk as a result, require extra http requests and what happens in the future when you turn the service off? A trend I've never fancied.
On the other hand if you're linking to something you don't control and you need to track stats then use branded URL shorteners.

Sometimes there are valid use cases for things.

I'm always amazed to see minimalist used to describe a dozen placeholder directories and files. That said, the code is clean and modern php.
Minimalist in regards to its design, perhaps not the code structure :)

In contrast to other projects such as YOURLS, Polr tries to be minimalist by avoiding heavy graphs or unnecessary bloat.

The structure is good. You can read what's happening clearly. It also shows what's a laravel idiom and what is modern php. I giggled a bit when reading the user factory code. It feels so enterprise. Not a bad thing in itself. I was just happy to see php code that is not a ball of mud held together by holy water. :)
Haha, I totally agree. Reminds me of this: http://www.willa.me/2013/11/the-six-most-common-species-of-c...
I hope to one day be able to code like the cat. :)
I don't know. If something is defined as "lightweight" (their word, but same point applies to "minimalist"), I should not have to blow my entire brain memory stack keeping the filesystem structure in my head just to start to examine how it's done.
Good on you for making it, but I have to side with the comments here that it's not only not lightweight, I personally also can't see what's so modern about it - I'm not hating on PHP but even as a language that's an old beast.
Serious question: Is URL shortening still a thing? What are the use cases?
Tracking stats when you're linking to something you don't control
Also useful for making easy to remember links to often-used resources
Nice that's it's in php/MySQL so it works anywhere.