نسخه 5.4 از فریم ورک محبوب Laravel (فریم ورکی برای زبان PHP) به صورت رسمی منتشر شد. در این نسخه شاهد امکانات جدید فراوان و بهبودهای زیادی هستیم.در ویدیو زیر خلاصه ای از موارد شاخص را می توانید ببینید:
لاراول داسک (Dusk)
Dusk یک ابزار تست مرورگر end-to-end برای برنامه هایی است که از JavaScript استفاده می کنند.هدف از آن ایجاد راهی صحیح برای انجام تست های تعاملی در صفحه است بنابراین می توانید از Dusk برای کلیک کردن روی دکمه ها و لینک ها، فرم ها و همچنین Drag-and-Drop استفاده کنید!
داسک از ChromeDriver و Facebook Php-webdriver برای انجام تست ها بهره می برد.البته با هر مرورگر سلنیومی می تواند کار کند ولی به صورت پیش فرض از ChromeDriver استفاده می کند تا شما را از شر نصب Selenium یا JDK خلاص کند.
استفاده از Dusk لاراول بسیار آسان است و نیازی به تنظیمات سلنیوم نیست و هر زمانی می توان سرور را راحت راه اندازی کرد.
لاراول میکس (Mix)
Mix نسل بعدی Elixir است و به جای Gulp با Webpack ساخته شده است. همچنین به دلیل تغییرات گسترده کلا به Mix تغییر اسم داده است.اگر تنظیمات الیکسیرتان را سفارشی نکرده باشید ، سویچ کردن به میکس نباید مشکل باشد زیاد!
Blade Components and Slots
Blade Components and Slots طراحی شده اند تا انعطاف پذیری بیشتری هنگام استفاده از تمپلیت های Blade به شما بدهند.برای نمونه فرض کنید یک تمپلیت دارید که برای نمایش خطاها آن را include می کنید
<!-- /resources/views/alert.blade.php --> <div class="alert alert-danger"> {{ $slot }} </div>
حالا هر جایی که نیاز بود می توانید به شکل زیر آن را include کنید :
@component('alert') <strong>Whoops!</strong> Something went wrong! @endcomponent
ایمیل های Markdown
این قابلیت تولید ایمیل تمپلیت ها را آسان تر از گذشته می کند و با ترکیب کومپوننت های Blade و سینتکس Markdown به آسانی می توانید Email Template های مورد نظرتان را ایجاد کنید.برای آشنایی بیشتر به توضیحات سایت Laravel مراجعه کنید.
@component('mail::message') # Invoice Paid Your invoice has been paid! @component('mail::button', ['url' => $url]) View Invoice @endcomponent Thanks,<br> {{ config('app.name') }} @endcomponent
Facade اتوماتیک
شما حالا می توانید هر کلاسی را به عنوان Facade استفاده کنید.برای نمونه :
namespace App; class Zonda { public function zurf() { return ‘Zurfing’; } }
حالا در Route یا Controller می توانید به این صورت عمل کنید:
use Facades\ { App\Zonda }; Route::get('/', function () { return Zonda::zurf(); });
بهبودهای Route
قابلیت دیگر بهبود یافته لاراول 5.4 ، امکان نام گذاری route و middleware به صورت روان تر است :
Route::name('profile')->get('user/{id}/profile', function ($id) { // some closure action... }); Route::name('users.index')->middleware('auth')->get('users', function () { // some closure action... }); Route::middleware('auth')->prefix('api')->group(function () { // register some routes... }); Route::middleware('auth')->resource('photo', 'PhotoController');
بهبود هایی نیز در لایه کش route اعمال شده است تا در برنامه های بسیار بزرگ مشکلی نداشته باشد.
تماس با Collection در سطح بالاتر
برای درک بهتر این بهبود بهتر است مثالی بزنیم.فرض کنید می خواهید عملی را روی تک تک عناصر موجود در یک Collection اعمال کنید.در نسخه های قبلی باید به این شکل عمل می کردیم:
$invoices->each(function($invoice) { $invoice->pay(); });
حالا کافیست به این شکل عمل کنیم:
$invoices->each->pay();
امکانات بیشتری که اضافه شده اند:
- اضافه شدن helper جدید
retry
- اضافه شدن helper جدید
array_wrap
- اضافه شدن صفحه پیش فرض خطای 503
- اضافه شدن نام به روت های password reset
- اضافه شدن پشتیبانی از PhpRedis
- اضافه شدن اعتبارسنجی IPv4 و IPv6
- دقیق تر شدن اعتبارسنجی
date_format
نحوه ارتقا به لاراول 5.4
نحوه ارتقا به لاراول 5.4 به صورت کامل در سایت رسمی لاراول توضیح داده شده است و اینجا فقط مواردی را که باید بدانید مرور می کنیم.
Laravel Tinker از این به بعد یک بسته جداگانه است که می توانید به راحتی نصب کنید.با require مردن بسته و اضافه کردن به ServiceProvider.
composer require laravel/tinker
بعد از دانلود شدن بسته ، دستور زیر را در فایل config/app.php اضافه کنید:
Laravel\Tinker\TinkerServiceProvider
دانستنی های بیشتر در مورد Laravel 5.4
Laracasts یک سری آموزشی در مورد همه امکانات جدید لاراول 5.4 تدارک دیده است.در سایت اصلی نیز جزئیات بیشتری می توانید ببینید.
ترجمه توسط فتولیا