Laravel 5.3 New Features and Updates
I here list down some features which is announced with Laravel 5.3
Laravel Echo
Laravel Echo using Laravel Spark is one of cool features coming with Laravel 5.3.
As we know Laravel has its powerful event broadcasting system and listening feature you might have used in previous version of Laravel.
Laravel Echo feature is a vast improvement over the event broadcasting system.
With Laravel Echo, it's going very easy to work with web sockets and if you don't know what is the use of WebSockets then i here let you know, WebSockets is useful for you when you want to send some messages to your users.
You must know that WebSockets implementations have three type of channels :
- Public
- Private
- Presence
Laravel Echo provides very neat and clean syntax for WebSockets features like public, private and presence channels.
Releasing the New $loop VariableLaravel indroduces the new $loop variables with coming features inside a foreach loop.
Here i list down some new $loop
variable.
index
: Manage indexesremaining
: It returns the number of remaining item in loopcount
: It returns the count of items in the loopfirst
: It returns the boolean that means you can check item is first or not in looplast
: It returns the boolean that means you can check item is last or not in loopdepth
: It returns the integer value of depth of the loop.parent
: if this loop is within another@foreach
loop then it returns a reference to the$loop
variable for the parent loop item, otherwise it returnsnull
for a loop with a depth of 1.
- @foreach($users as $user)
- @if($loop->first)
- <p class="first">{{ user->name }}p>
- @continue
- endif
- @if($loop->last)
- <p class="last">{{ user->name }}p>
- @continue
- endif
- <p>{{ $user->name }}p>
- @endforeach
In Laravel 5.3, you can set new validation rules called dimension.
Here is a list of parameters which you can pass with it :
- width
- height
- min_width
- max_width
- min_height
- max_height
- ratio
- $this->validate($request, [
- 'image' => 'dimensions:min_width=200,min_height=200'
- ]);
Search (Laravel Scout)
ElasticSearch and Algolia is very popular tool that gets lots of popularity for searching any data.
Laravel 5.3 introduce scout features that is a driver based fulltext search solution which makes very easy to search any data from Eloquent models.
Currently it ships with Algolia.
You will have to pull it with composer to use this package because Scout is a separate Laravel package as others.
InstallationYou can install Scout package by running following command :
composer require laravel/scout
Now you will have to add its service provider to provider array in following path config/app.php
.
Laravel\Scout\ScoutServiceProvider::class,
After adding ScoutServiceProvider
you will need to publish the Scout configuration through Artisan command.
php artisan vendor:publish
Now you can use Scout searchable features in your application but you will need to add its traits Laravel\Scout\Searchable
to model you would like to make searchable.
Have a look at below syntax for fulltext search to find any product name with starting 'Expert'.
Product::search('Expert')->get();
You can paginate too :
Product::search('Expert')->paginate(10);
And you can add where clauses too :
Product::search('Expert')->where('product_id',1)->get();
There is an artisan command to manually trigger indexing via CLI.
php artisan scout:import App\\ProductLaravel Mailable : improved way to send emails
I here let you know about mailable class, all of its configuration is done in the build method and within this method, you can call several methods such as from()
, subject()
, view()
, attach()
.
Laravel Mailable class are stored in the app/Mail
directory.
Mailable classes are responsible for handling data and passing them to views.
Click here to know more How to send mail using mailable in Laravel 5.3 with example
Customizing pagination templates in Laravel 5.3
There are so many changes you will find in Laravel 5.3 and i discussed above about changes in Laravel 5.3
In Laravel 5.3, you can easily customize pagination template.
Click here to know more about pagination in Laravel 5.3 Laravel 5.3 - Customizing pagination templates with example