The difference between laravel 5.2 and 5.6 versions: 1. All front-end scaffolding and Vue component instances of the 5.6 version are based on "Bootstrap 4" and are equipped with the "Bootstrap 4" stable version by default, while the 5.2 version instances are not Based on "Bootstrap 4" and not the default version; the log configuration file of versions 2 and 5.6 is "config/logging.php", and the log configuration file of version 5.2 is "config/app.php".
The operating environment of this article: Windows 10 system, Laravel5.6&&laravel5.2 version, Dell G3 computer.
5.2 version adds
Six months of bug fixes and one year of security fix support
1.Multiple authentication driver support
2.Implicit model binding
3.Simplified Eloquent global scope
4.Optional authentication scaffolding
5. Middleware group
6. Access frequency limit
7. Array input validation optimization
Added in version 5.6
1. Log system,
2. Single-machine task scheduling
3. Model serialization optimization
4.Eloquent date format optimization
5.Dynamic frequency limit
6.Broadcast channel class
7.API resource controller generation
8.Blade component alias
9. Argon2 password hashing support
9. Introducing the Collision extension package
All front-end scaffolding code has been upgraded to Bootstrap 4, and the Symfony components used by Laravel underlying have been upgraded to Symfony ~4.0 version.
Improvement log
The most important features in Laravel 5.6 version It is an improvement of the logging function. For those new to Laravel, please note that the logging configuration file in Laravel 5.6 has changed from config/app.php to config/logging.php.
You can configure stack to send logs to different processors. For example, you might want to send debug logs to system log and error logs to slack.
For more information about configuring and customizing logs, please refer to the log-related documents.
Single server task scheduling
If you run the task scheduler on multiple servers, then the tasks you send will be executed on each server . Through the onOneServer() method, you can specify which server the task is running on.
$schedule->command('report:generate') ->fridays() ->at('17:00') ->onOneServer();
Note: In Laravel 5.6 version, you must use memcached or redis cache driver as the default cache driver to get the advantages of single-server task scheduling.
Dynamic speed limit
Laravel 5.6 introduces the dynamic speed limit function, which brings you more flexibility and makes speed limit for individual users simpler:
Route::middleware('auth:api', 'throttle:rate_limit,1') ->group(function () { Route::get('/user', function () { // }); });
In the above example, rate_limit is an attribute of the App\User model (model), which is used to determine the number of requests allowed within a certain period of time.
Broadcast Channel Class
The channel class can now be used in routes/channels.php file.
Laravel 5.6 provides a new make:channel command to assist in generating a new channel class: php artisan make:channel OrderChannel
Register the channel class in the routes/channels.php file It's as simple as this:
use App\Broadcasting\OrderChannel; Broadcast::channel('order.{order}', OrderChannel::class);
Generate API Controller
Now you can generate a resource controller for an API that does not require create and edit methods. This A convenience approach is only available for resource controllers that return HTML. Add the --api parameter at the end of the command line to generate a resource controller: php artisan make:controller API/PhotoController --api
Eloquent date format
in Laravel In 5.6, you can specify the format for Eloquent date and datetime respectively:
protected $casts = [ 'birthday' => 'date:Y-m-d', 'joined_at' => 'datetime:Y-m-d H:00', ];
This format is used to serialize the model into an array or JSON data.
Blade component alias
In Laravel 5.6 you can create aliases for blade components for easy reference. For example, if you save a blade component in the resources/views/components/alert.blade.php file, you can create a shorter alias for it using the component() method: Blade::component('components.alert ', 'alert');
Then you can reference this component through the alias and output: @component('alert')
This is an alert component
@endcomponent
Argon2 Password Hashing
Laravel 5.6 supports the new hashing method for PHP 7.2. You can specify the hashing algorithm used by default in the config/hashing.php configuration file.
UUID method
Two new methods have been added to the Illuminate\Support\Str class for generating UUID (Universal Unique Identifiers):
// The methods return a Ramsey\Uuid\Uuid object return (string) Str::uuid(); return (string) Str::orderedUuid();
The orderedUuid() method is used to generate a UUID starting with a timestamp to facilitate more efficient database indexing.
Collision beautifies error reporting
We recently developed the Collision package and used it as a dev dependency for Laravel 5.6. Collision provides beautiful error reporting and output to the console. Screenshot below:
Bootstrap 4
All front-end scaffolding and Vue component instances are based on Bootstrap 4. We've been following along since Bootstrap 4 beta and even created a Bootstrap 4 Laravel preset. Laravel 5.6 now ships with the stable version of Bootstrap 4 by default.
[Related recommendations: laravel video tutorial]
The above is the detailed content of What is the difference between laravel 5.2 and 5.6 versions. For more information, please follow other related articles on the PHP Chinese website!