Laravel 7 در تاریخ 3 مارس 2020 انتشار یافت. این انتشار مطابق استراتژی انتشار نسخه اصلی 6 ماهه لاراول است که هر (فوریه و آگوست) منتشر میشود. این انتشار یک نسخه LTS نیست به طوری که طبق سیاست پشتیبانی نسخه لاراول رفع اشکال 6 ماهه تا 3 سپتامبر سال 2020 و رفع مشکلات امنیتی تا 1 سال تا تاریخ 3 مارس سال 2020 قابل ارائه خواهد بود.
ویژگیهای جدید در Laravel 7
- Laravel Airlock
- Zttp for HTTP client
- CORS Support
- Custom Eloquent Cast
- Fluent String Operations
- Blade X
- Customizable Stubs
- Query Time Casts
- Multiple Mail Driver
- New Artisan Command
پیشرفت ها در لاراول 7
- Route Model Binding Improvements
- 2x Faster Route
- Database queue improvements
- Markdown Mail Template Improvements
- and more variety of bug fixes and improvements.
Laravel Airlock
Laravel Airlock یک بسته رسمی برای اعتبار سنجی API است. این بسته به ساددگی امکان اعتبارسنجی پایه توکن های API ، صدور توکن ، قابلیت های توکن ، تأیید اعتبار برای اپلیکیشن های موبایل و موارد دیگر را فراهم می کند. می توانید برای اطلاعات بیشتر در مورد Laravel Airlock این مقاله را مطالعه کنید.
Zttp برای سرویس دهنده HTTP
با استفاده از Zttp ، می توانید یک درخواست HTTP به نقطه انتهایی API به صورتی ساده تر ارسال کنید.
ارسال درخواست:
use Illuminate\Support\Facades\Http;
$response = Http::post($url);
$response = Http::post($url, [
'site' => 'Laravel Article',
]);
دریافت پاسخ:
$response = Http::get($url);
$response = Http::get($url,['foo'=>'bar']);
با هدر:
$response = Http::withHeaders(['foo' => 'bar'])->post($url, [
'baz' => 'qux',
]);
پاسخ:
$response['foo']
$response->body()
$response->json()
$response->status()
$response->ok()
پشتیبانی از CORS
اکنون Laravel 7 از CORS (Cross-Origin Resource Sharing) به صورت پیشفرض پشتیبانی می کند. بهتر می دانید که هر توسعه دهنده ها در هنگام توسعه API با مشکل CORS روبرو هستند. اکنون Laravel 7 به طور خودکار به درخواست OPTION شما با مقدار پیکربندی شده پاسخ می دهد. میان افزار HandleCors ترتیب همه کارها را خواهد داد که Laravel 7 در اختیار شما قرار می دهد.
Custom Eloquent Cast
Custom Eloquent Cast در Laravel 7 یکی دیگر از ویژگی های جالب است. این ویژگی به شما امکان اضافه کردن Custom Eloquent Cast خود را می دهد. بیایید نگاهی به کستر JSON بیاندازیم.
use Illuminate\Contracts\Database\Eloquent\CastsAttributes;
class Json implements CastsAttributes
{
public function get($model, $key, $value, $attributes)
{
return json_decode($value, true);
}
public function set($model, $key, $value, $attributes)
{
return json_encode($value);
}
}
اکنون می توانیم در مدل خود از Custom eloquent casting استفاده کنیم.
namespace App;
use App\Casts\Json;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
protected $casts = [
'extra' => Json::class,
];
}
Fluent String Operations
در Laravel 7 می توانید کارهای جالب تر و شی گرا با کلاس Illuminate\Support\Str انجام دهید.
$currentVersion = (string) Str::of(' Laravel 6.x ');
return $currentVersion->trim()
->replace('6.x', '7.x')
->slug();
// laravel-7x
Blade X
ویژگی های Laravel 7 Blade X این امکان را به شما می دهد تا یک قطعه بدون کلاس داشته باشید.
ساخت کامپوننت x:
@php($user = $user ?? Auth::user())
@php($size = $size ?? 50)
<img
class="inline-block rounded-full"
src="{{ $user->gravatarUrl($size) }}"
width="{{ $size }}"
height="{{ $size }}"
/>
استفاده از Blade x:
<x-avatar/>
<x-avatar size="40" />
<x-avatar size="100" />
Stub های قابل تنظیم
اکنون می توانید Stub ها را در Laravel 7.x با استفاده از دستور artisan تنظیم کنید.
php artisan stub:publish
Query Time Casts
Laravel 7 متد withCasts ارائه میدهد که به شما کمک می کند هنگام اجرای یک پرس و جو مقدار را به دست آورید. بیایید مثالی بزنیم.
$users = User::select([
'users.*',
'last_posted_at' => Post::selectRaw('MAX(created_at)')->whereColumn('user_id', 'users.id')
])
->withCasts(['last_posted_at' => 'date'])
->get();
Multiple Mail Drivers
Laravel 7 به شما امکان می دهد چندین درایور پست الکترونیکی را با یک اپلیکیشن واحد تنظیم کنید.
Mail::mailer('noreply')
->to($request->user())
->send(new PostUpdated($post));
New Artisan Command
یک دستور جدید artisan test در Laravel 7 اضافه شده است. فرمان جدید test artisan اطلاعات مفیدی را در مورد تست خود با استفاده از یک UX زیبا به شما ارائه می دهد.
php artisan test
پیشرفت ها در لاراول 7
- Route Model Binding Improvements
- 2x Faster Route
- Database queue improvements
- Markdown Mail Template Improvements
- and more variety of bug fixes and improvements.
پیشرفت های Route Model Binding
کلید شخصی سازی:
به طور پیش فرض ، الگوی اتصال مسیر با فیلد id کار می کند. اکنون می توانید آن را شخصی سازی کنید.
Route::get('posts/{post:slug}', function (App\Post $post) {
return $post;
});
دامنه خودکار:
Laravel 7 به طور خودکار پرس و جو را برای بازیابی مدل تو در تو با استفاده از تشخیص استفاده از قراردادهای شرط بندی در تماس با روابط در شکل ، ارائه می کند.
use App\Post;
use App\User;
Route::get('api/users/{user}/posts/{post:slug}', function (User $user, Post $post) {
return $post;
});
مسیردهی با ۲ برابر سرعت بیشتر
Laravel 7 به شما امکان استفاده از مسیردهی با 2 برابر سرعت سریع تردر عملکرد نسبت به لاراول 6 با استفاده از route:cache به شما می دهد.
بهبود صف پایگاه داده
Laravel 7 اپلیکیشن ها را با استفاده از MySQL 8+ به عنوان صف پشتیبانی شده از پایگاه داده خود ، بهبود می بخشد.
Markdown Mail Template Improvements
الگوی پیش فرض نشانه گذاری Mail با پالت رنگی Tailwind CSS ظاهر تازه ای به خود گرفته است. قالب ها را می توانید به صورت دلخواه تنظیم و منتشر کنید.
منبع: Laravel Article