27 comments

[ 2.9 ms ] story [ 70.8 ms ] thread
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. :)
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.
Yes, 4192 files and 32MiB, quite minimal.
4 files needed including a dB if you want to show a data table in Html. Maybe 60 lines of code to complete.
Seems 'minimal' and 'modern' are just marketing terms these days.

Honestly though, this is the largest and most complex URL shortner that I can ever recall seeing.

Maybe it's some kind of dadaist minimalism?
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.
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.

That's default GitHub settings. I assume you couldn't easily rebuild the project if you cloned it down as mentioned by another.
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.
Nice that's it's in php/MySQL so it works anywhere.
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
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.