Top 10 Laravel Packages

Top 10 Laravel Packages

Packages for Laravel
A great way to accelerate development is to identify the packages that will provide the functionality we need out of the box. In our experience working with multiple Laravel projects, we found the following packages to be useful. Packages add functionality to Laravel. Packages can be a great way to work with dates like Carbon or an entire testing framework like Behat.

There are different types of packages. Some are standalone, which means they will work with all frameworks. Both Carbon and Behat are examples of such packages. It’s easy to use these packages — simply by requesting it in COMPOSER.JS file. The Packages mentioned here — whether for routes, controllers, views or configuration — are there to enhance Laravel application, and can be used only for Laravel.

The actual instructions are not listed here because I think it’s important that you get used to pulling that information from the source. Additionally, there’s no way I can stay on top of all the updates and there’s no sense in duplicating information. I will, of course, add any special notes when appropriate.

Package: Image Maintainer: intervention
Creating a thumbnail or manipulating images can be a time-consuming process, especially in eCommerce projects where scores of such images are required. Laravel has introduced Image package which allows developers to create such images in a jiffy. Image Package helper class helps developers manipulate images in many ways. It provides features such as saving thumbnails of the image, setting it as grayscale, and a whole lot more.

2. Laravel Debug Bar
Package: Laravel-debugbar Maintainer: barryvdh
This is an absolute must for development. It installs a debug bar that sits at the bottom of the page and provides helpful information on routes, DB queries and more.
Note:- This is a package used to integrate PHP Debug Bar with Laravel 5. It includes a ServiceProvider to register the debug bar and attach it to the output. You can publish assets and configure it through Laravel. It bootstraps some Collectors to work with Laravel and implements a couple of custom DataCollectors, specific to Laravel. It is configured to display Redirects and (jQuery) Ajax Requests.

3. Laravel IDE Helper
Package: Laravel-ide-helper Maintainer: barryvdh
This installs a helper class, which helps PhpStorm recognize application’s laravel classes, so the developer doesn’t end up with unnecessary error messages from his IDE. This one doesn’t need configuration in config/app.php. Instead, one would have to initialize from artisan commands.

Package: Html Maintainer: laravelcollective
This one replaces the illuminate/html class, since that class is no longer supported and is no longer included in the core as of laravel 5. This package is essential if you like using the form model binding as shown below:

{!!Form::model($marketingImage, ['route' => ['marketingimage.destroy',
'method' => 'DELETE',
'class' => 'form',
'files' => true]

But obviously, this is not very necessary, which is why it’s no longer in the core. You could simply create a form manually using bootstrap. You must remember to add:

<input type="hidden" name="_token" value="{{ csrf_token() }}">

That will add your csrf token to the post data.
This is very convenient which is why I use it whenever I can. When you are installing this, you will see instructions for adding the ‘Form’ alias. Please note that the bootstrapper package has Form alias as well and you cannot use both because it will cause a conflict. You can avoid the conflict by simply avoiding the bootstrapper form alias.

Note: Most instructions for adding to providers array and the alias array do not use the new PHP::class syntax. I recommend using the new syntax, which is better because it allows you to use your IDE to click into the class.

For example, old style alias:

'Form' => 'Collective\Html\FormFacade'

New style:

'Form' => Collective\Html\FormFacade::class,

You can do the same for the providers, in this case, it’s the html provider:


5. Generators
Package : Generators Maintainer: way
This Laravel package provides a variety of generators to speed up your development process. These generators include:


Laracast generators give us an artisan command for creating pivot table migrations.

6. Excel
Package : Excel Maintainer: maatwebsite
Laravel Excel brings the power of PHP Office’s PHPExcel to Laravel 5 with a touch of the Laravel Magic. It includes features like importing Excel and CSV to collections, exporting models, arrays, and views to Excel, importing batches of files and importing a file through the config file.

The package also has a solution for dealing with very large imports. We can now use ->chunk() to import the data in chunks. Together with a queue, it can import large quantities of data.

7. Laravel-schema
Package: Laravel-schema Maintainer: autn
Be it a professional developer or just a beginner, everyone wants to get rid of the need for database querying. Writing queries requires you to remember the syntax and be cautious since a single mistake can lead to a big disaster. Laravel Schema Package had made all the database manipulation and operations very easy. Now developers have a lot of options to make database dance to their tunes without having to remember the syntax.

Laravel-schema package is helpful to view the schema information from Application server instead of logging into the Database server. It generates Mysql database schema from migration files. With this package, we can easily create database tables and perform all database operations without writing complicated queries.

You can understand the ease of use of Laravel Schema package with the following example of table creation. To create a new database table, the Schema::create method is used:

Schema::create('users', function($table)

The first argument passed to the create method is the name of the table and the second is a closure which will receive a Blueprint object which may be used to define the new table.

8. Laravel JSValidation
Package : Laravel-jsvalidation Maintainer :proengsoft
Validating every field of a form is a very tedious and time-consuming job with loads of space for error. Every time when we need to validate things, we re-write the code. Laravel had fixed this problem for everyone by releasing a validation Package.

Developers can validate forms automatically by referencing them to their pre-defined validations. The messages are loaded from our validations and translated according to your localization preferences. With JSvalidation, we can validate our forms using Javascript automatically. The main goal of this package is its ability to reuse our PHP validation logic to validate forms via Javascript. If we validate our forms using controller, the simplest way to reuse our validation rules is by sharing our rules between controller methods. By using FormRequest, you could configure your validations directly in the view.

Laravel Javascript Validation package helps us reuse our Laravel Validation Rules, Messages, FormRequest and Validators to validate forms automatically on the client side without re-writing any Javascript code or using HTML Builder Class.

9. Agent
Package: Agent Maintainer: jensseggers
Agent is a PHP desktop/mobile user agent parser with support for Laravel, based on Mobile Detect. It provides both desktop support and additional functionality. This Laravel package utilizes Mobile Detect PHP Class under the hood:

Mobile_Detect is a lightweight PHP class for detecting mobile devices (including tablets). It uses the User-Agent string in combination with specific HTTP headers to detect the mobile environment.

Nice syntax too:


10. Bootstrapper
Package: Bootstrapper Maintainer: Patricktalmadge
This is a pretty wrapper for a lot of bootstrap related work. I haven’t gone too far deep into it, but I do use the breadcrumb widget. As I noted in the laravel collective HTML package, there is a conflict with the form alias. I would advise that you leave that out when updating the aliases array in config/app.php.

As Laravel continues to progress and more packages enter the marketplace, we will cover them for sure. Are there any packages you feel should have made this list? Or do you have something to say about some of the packages mentioned? Let us know!