Today, I’d like to share with you my favorite PHP libraries that I am using in my projects. I am quite cautious about quality of vendors that I am using so stability of proposed below are confirmed by myself.
"illuminate/html" "doctrine/dbal" "filp/whoops" "moltin/currency" "maatwebsite/excel" "barryvdh/laravel-dompdf" "jenssegers/date" "jenssegers/agent" "intervention/image"
Since L5 (Laravel 5.0) HTML facade is no longer available. If you were using Form::open() and Form::close() in L4 now you are forced to add a dependency for that. OK, I can agree. For someone HTML and Form facade could be redundant.
Cool database abstraction layer. If you want to e.g rename a column in you migration, you will need this soon or later. So add it ASAP, because you will see fatal error while running migrations. Trust me! Mentioned officially here.
Did you remember nice error page in L4? In L5 it is missing… so you have to recover it – if you like so of course.
I needed some time ago a simple lib which will help me with formatting and recalculating currency from one into another. The power of that lib is definitely simplicity. Nothing redundant.
Most of my clients need reports in XLS format (CSV is not enough). The library is generally OK, but default config could be annoying for processing data in two-way (import and export). Column name detection is configured to make a slugs from first row columns instead of keeping origin values. For me it is quite annoying when I have polish text there… I had a bad feeling when I was discovering source code but… however it works 🙂
Did you remember the old way of making PDF’s? Calculating distances in some virtual units? Moving bounding boxes for texts, maintaining dozens of $x and $y? Now the thing is completely simple. Just create a normal HTML template in Blade, style it using CSS, make a view and pass it to Laravel DOMPDF and done.
Default library for servicing time in Laravel sometimes is not enough powerful. You can override it with Jessengers Date, because it is backward compatible to Carbon. Date provides localization support for many countries and also can convert our dates into human readable format.
Soon or later we will have to implement some image upload. Then we have to generate some thumbnails etc. Nothing special but API is very simple. I truly recommend it.
Do you have another library, which you could recommend me? Please, write it down in comment. Yes I know Ardent, Sentry and DebugBar. Something else? 🙂 CU!