Greatest Laravel packages each developer ought to know

Laravel is among the hottest and extensively used PHP frameworks. Laravel saves loads of time and value of improvement by easing widespread duties used within the majority of net purposes, reminiscent of authentication, routing, classes, caching, and extra.

Laravel has the flexibleness to increase its energy with plugins and packages, because of fast-growing neighborhood of builders, we’ve tons of packages that present particular functionalities and will be freely reused anyplace within the utility. Listed here are among the greatest Laravel packages we

What are Laravel packages?

Packages, also called plugins, are items of code that may be built-in into present software program to increase its functionalities. Most net purposes have widespread functionalities like authentication, Roles, Permissions, fairly than coding them in on a regular basis once more we create packages that maintain these repetitive duties and use them in any utility, additionally it is referred to as DRY (Don’t Repeat Your self) technique

The right way to set up packages in Laravel?

To put in a package deal, we want a package deal supervisor additionally referred to as dependency supervisor, Laravel makes use of composer to put in and handle packages and their variations in Laravel.

Laravel has a file named composer.json the place all of the packages and their variations are listed. Composer makes it very easy to put in any package deal; simply add a line (package deal identify and model) within the composer.json file or use composer require command.

composer require packageowner/packagename
To make use of the put in package deal we initialize it:
$package deal = new Bundle;”

Listed here are among the superior free greatest Laravel Packages

Socialite

A lot of the customers prefer to have faster to manner get into an utility with out fillings heavy kinds, that’s the explanation social login has develop into a must have characteristic for net purposes. Socialite provides a easy and simple method to deal with OAuth authentication. It permits the customers to log in by way of among the hottest social networks and providers together with Fb, Twitter, Google, GitHub, and BitBucket.

To put in socialite in your Laravel utility run this command within the root listing

“composer require laravel/socialite”
Open the file config/app.php and add following within the suppliers array
“LaravelSocialiteSocialiteServiceProvider::class,”
Within the aliases array of the identical file, add
‘Socialite’ => LaravelSocialiteFacadesSocialite::class,

Now the socialite is put in however so as to use it we have to add credentials for the OAuth suppliers.

Add the next to config/providers.php

'fb' => [
        'client_id'     => env('FACEBOOK_CLIENT_ID'),
        'client_secret' => env('FACEBOOK_CLIENT_SECRET'),
        'redirect'      => env('FACEBOOK_URL'),
    ],
'twitter' => [
        'client_id'     => env('TWITTER_CLIENT_ID'),
        'client_secret' => env('TWITTER_CLIENT_SECRET'),
        'redirect'      => env('TWITTER_URL'),
    ],
'google' => [
        'client_id'     => env('GOOGLE_CLIENT_ID'),
        'client_secret' => env('GOOGLE_CLIENT_SECRET'),
        'redirect'      => env('GOOGLE_URL'),
    ],

Add the next to .env file along with your Oauth credentials

FACEBOOK_CLIENT_ID=
FACEBOOK_CLIENT_SECRET=
FACEBOOK_URL=http://localhost:8000/login/fb/callback
TWITTER_CLIENT_ID=
TWITTER_CLIENT_SECRET=
TWITTER_URL=http://127.0.0.1:8000/login/twitter/callback
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GOOGLE_URL=http://localhost:8000/login/google/callback

Roles and permissions

More often than not we want an admin panel to handle our utility, and we’ve various kinds of customers for the applying. Similar utility is utilized by various kinds of customers that may have totally different privileges, to limit entry to unprivileged areas of the applying we have to create roles and permissions.

Somewhat than creating this performance over again in each utility, we’ve totally different packages to handle it. Spatie’s Laravel-Permission Package offers us with these functionalities and may be very straightforward to make use of. It takes care of making roles, assigning permissions to roles, assigning permissions to particular customers, and far more.

You possibly can set up the package deal by way of composer:

“composer require spatie/laravel-permission”
Open the file config/app.php and add following within the suppliers array
'suppliers' => [
    // ...
    SpatiePermissionPermissionServiceProvider::class,
];

It creates migrations for managing roles and permissions in DB and in addition creates a config file config/permissions, run the next command to publish these recordsdata.

php artisan vendor:publish –supplier=”SpatiePermissionPermissionServiceProvider”

Run the migrations: After the config and migration have been printed and configured, you possibly can create the tables for this package deal by working:

“php artisan migrate”

Intervention Image

Intervention Picture is a PHP picture dealing with and manipulation library offering a neater and extra expressive method to create, edit, and compose photos. The package deal consists of ServiceProviders and Facades for simple Laravel integration.

Run the next command to put in this package deal

“composer require intervention/picture”

Open the config/app.php file and replace the next code within the file.

$suppliers => [
	......,
	'InterventionImageImageServiceProvider'
],
$aliases => [
	......,
	'Image' => 'InterventionImageFacadesImage'
]
Instance:
// utilization inside a laravel route
Route::get('/', operate()

$img = Picture::make('foo.jpg')->resize(300, 200);
return $img->response('jpg');
);

Laravel Meta Manager

By utilizing Laravel Meta Supervisor, you possibly can optimize your web site’s web optimization, thereby serving to your web site rank larger on the primary web page of the search engine.

web optimization Options

  • Customary Meta Tags
  • Fb OpenGraph Meta Tags
  • Twitter Card Meta Tags
  • Dublin Core Meta Tags
  • Hyperlink Tags

Run the next to put in this package deal with Composer

“composer require davmixcool/laravel-meta-manager”

Replace your config/app.php file with following code

'suppliers' => [
        DavmixcoolMetaManagerMetaServiceProvider::class,
];

Then run following command to publish the config of Laravel Meta Supervisor.

php artisan vendor:publish --provider="DavmixcoolMetaManagerMetaServiceProvider" 

 Instance
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Doc</title>
        @embrace('meta::supervisor', [
            'title'         => 'My Example Title',
            'description'   => 'This is my example description',
            'image'         => '',
        ])
    </head>

Laravel Backup

This Laravel package deal creates a backup of all of your recordsdata inside an utility. It creates a zipper file that incorporates all recordsdata within the directories you specify together with a dump of your database. You possibly can retailer a backup on any file system.

Run the next to put in this package deal with Composer

composer require backup-manager/Laravel

Then, you’ll want to pick the suitable packages for the adapters that you just wish to use.

s3 or google cs
composer require league/flysystem-aws-s3-v3
Dropbox
composer require srmklive/flysystem-dropbox-v2
Rackspace
composer require league/flysystem-rackspace
Sftp
composer require league/flysystem-sftp
GCS
composer require superbalist/flysystem-google-storage
Scheduling Backups
It is attainable to schedule backups utilizing Laravel's scheduler.
protected operate schedule(Schedule $schedule) 
     $atmosphere = config('app.env');
     $schedule->command(
         "db:backup --database=mysql --destination=s3 --destinationPath=/$atmosphere/projectname --timestamp="Y_m_d_H_i_s" --compression=gzip"
         )->twiceDaily(13,21);
 

Ziggy – Use your Laravel routes in JavaScript

Ziggy offers a JavaScript route() helper operate that works like Laravel’s, making it straightforward to make use of your Laravel named routes in JavaScript.

Run the next to put in this package deal with Composer

“composer require tightenco/Ziggy”

Instance
Laravel routes/net.php
Route::get('posts', fn (Request $request) => /* ... */)->identify('posts.index');

app.js
route('posts.index'); 
With parameters

Laravel routes/net.php

Route::get('posts/publish', fn (Request $request, Submit $publish) => /* ... */)->identify('posts.present');
app.js

route('posts.present', 1);           // 'https://ziggy.take a look at/posts/1'
route('posts.present', [1]);         // 'https://ziggy.take a look at/posts/1'
route('posts.present',  publish: 1 ); // 'https://ziggy.take a look at/posts/1'

Laravel Activity Log

For the audit and safety a lot of the purposes log information. Laravel logs the actions and save them in laravel.log file. There’s a package deal by spatie that gives the performance to log information and reserve it to DB and retrieve to point out in dashboard.

The spatie/laravel-activitylog package deal offers straightforward to make use of features to log the actions of the customers of your app. It might probably additionally mechanically log mannequin occasions. The Bundle shops all exercise within the activity_log desk.

Run the next to put in this package deal with Composer

“composer require spatie/laravel-activitylog”

Publish migrations with following command

php artisan vendor:publish --provider="SpatieActivitylogActivitylogServiceProvider" --tag="activitylog-migrations"

Instance

You possibly can log and exercise like following

exercise()->log('Look, I logged one thing');

You possibly can retrieve all exercise utilizing the SpatieActivitylogModelsActivity mannequin.

Exercise::all();

Laravel Cashier

Laravel is an impressive platform for creating membership and ecommerce utility, an important a part of these purposes is a cost technique. To obtain cost for purchases or recurring membership charges, we are able to use laravel cashier that gives an expressive, fluent interface to Stripe’s subscription billing providers

It handles virtually the entire heavy lifting for subscription billing code you might be writing. Along with primary subscription administration, Cashier can deal with coupons, swapping subscription, subscription “portions”, cancellation grace durations, and even generate bill PDFs.

Run the next to put in this package deal with Composer

“composer require laravel/cashier”

Cashier creates its personal migrations to avoid wasting billing information in DB, use following command emigrate.

“php artisan migrate”

If you might want to overwrite the migrations that ship with Cashier, you possibly can publish them utilizing the seller:publish Artisan command:

php artisan vendor:publish --tag="cashier-migrations".

To make use of cashier we have to add “Billable” trait to our billing mannequin.

use LaravelCashierBillable;
class Consumer extends Authenticatable

   use Billable;

Subsequent we want API key and secret from stripe add these to you .env file

STRIPE_KEY=your-stripe-key
STRIPE_SECRET=your-stripe-secret

Laravel Debugbar

Laravel Debugbar is among the important packages laravel builders who’re in search of a greater manner of debugging their apps with out losing time at taking a look at error logs recordsdata or utilizing the operate like dd() and ddd() for inspecting information.

This can be a package deal to combine PHP Debug Bar with Laravel. It features a ServiceProvider to register the debugbar and connect it to the output. You possibly can publish property and configure it by Laravel. It bootstraps some Collectors to work with Laravel and implements a pair customized DataCollectors, particular for Laravel. It’s configured to show Redirects and Ajax Requests.

Run the next to put in this package deal with Composer

composer require barryvdh/laravel-debugbar –dev

Add supplier and aliase in app/config.php

'suppliers' => [
	....
	BarryvdhDebugbarServiceProvider::class,
],

'aliases' => [
	....
	'Debugbar' => BarryvdhDebugbarFacade::class,
]

To allow the debugger make APP_DEBUG=True in .env file

Debugbar::information($object);
Debugbar::error('Error!');
Debugbar::warning('Be careful…');
Debugbar::addMessage('One other message', 'mylabel');

Laravel adjacency list

This Laravel Eloquent extension offers recursive relationships utilizing widespread desk expressions (CTE).

A Widespread Desk Expression, additionally referred to as as CTE briefly kind, is a short lived named consequence set which you can reference inside a SELECT, INSERT, UPDATE, or DELETE assertion.

Run the next to put in this package deal with Composer

composer require staudenmeir/laravel-adjacency-list:"^1.0"

Following are among the relationships supplied by the package deal:

  • ancestors(): The mannequin’s recursive mother and father.
  • ancestorsAndSelf(): The mannequin’s recursive mother and father and itself.
  • bloodline(): The mannequin’s ancestors, descendants and itself.
  • youngsters(): The mannequin’s direct youngsters.
  • childrenAndSelf(): The mannequin’s direct youngsters and itself.
  • descendants(): The mannequin’s recursive youngsters.
  • descendantsAndSelf(): The mannequin’s recursive youngsters and itself.
  • mum or dad(): The mannequin’s direct mum or dad.
  • parentAndSelf(): The mannequin’s direct mum or dad and itself.
  • rootAncestor(): The mannequin’s topmost mum or dad.
  • siblings(): The mum or dad’s different youngsters.
  • siblingsAndSelf(): All of the mum or dad’s youngsters.

Instance Utilization

$ancestors = Consumer::discover($id)->ancestors;

$customers = Consumer::with('descendants')->get();

$customers = Consumer::whereHas('siblings', operate ($question) 
    $query->the place('identify', '=', 'John');
)->get();

$complete = Consumer::discover($id)->descendants()->rely();

Consumer::discover($id)->descendants()->replace(['active' => false]);

Consumer::discover($id)->siblings()->delete();

Necessary notice earlier than utilizing any package deal

Though packages are very helpful and time-saving, they shouldn’t be used blindly, at all times run assessments and verify opinions earlier than utilizing any package deal.

At all times verify if a package deal has opened up a possible safety loophole earlier than publishing or deploying your utility. Keep away from utilizing pointless packages, if a package deal is now not take away all its dependency.

Wrapping up

Our listing of packages ends right here, however, in fact, there are lot extra on the market. Yow will discover a listing of obtainable packages at Packalyst. At the moment, there are greater than 15000 packages listed.

In case you are trying to develop net purposes utilizing Laravel, you possibly can at all times talk about with us. We offer knowledgeable and mature web site options for our shoppers.