تیم توسعه لاراول همانند هفته های گذشته این هفته نیز یک نسخه جدید برای لاراول شش با شماره نسخه 6.7.0 (laravel 6.7.0) منتشر کرد ،که این نسخه دارای یک سری تغییرات و اصلاحات برای نسخه 6.x.0 است که در ادامه آنها را مرور خواهیم کرد.
اگر شما نیز از کسانی هستید که اخبار لاراول را دنبال می کنید ،حتما از این موضوع باخبر هستید که در نسخه 6 به بعد لاراول از ورژن بندی معنایی استفاده می شود و ما شاهد انتشار به روزرسانی ها برای لاراول تحت این استاندارد خواهیم بود. خب چند روز قبل نسخه جدید لاراول هم منتشر شد که شما می توانید همانند نسخه های قبلی اقدام به نصب و ایجاد پروژه با آن داشته باشید. به این منظور می توانید از دو روش زیر برای نصب و ایجاد پروژه های لاراولی در سیستم خود استفاده کنید:
//دانلود اینستالر لاراول
composer global require laravel/installer
//ساخت پروژه جدید
laravel new blog
//نصب پروژه لاراولی با کامپوزر
composer create-project --prefer-dist laravel/laravel blog
در این نسخه از لاراول شاهده دو روش (متد) برای بازگشت دادن ستون های توصیف شده در HasTimestamps برای ایجاد و بروز رسانی ستون های timestamp هستیم. برای درک بهتر قطعه کد زیر را در نظر بگیرید:
$model->getQualifiedCreatedAtColumn();
// i.e., users.created_at
$model->getQualifiedUpdatedAtColumn();
// i.e., users.updated_at
همچنین در این نسخه شاهد یک متد جدید exceptionContext() در کلاس application’s Handler (رسیدگی کننده برنامه) هستیم که یک سری شخصی سازی های اضافی (additional custom) در زمینه های ورود (logging context) را فراهم می کند. برای درک بهتر این موضوع به قطعه کد زیر دقت کنید:
// App/Exceptions/Handler.php
protected function exceptionContext(Exception $e)
{
if ($e instanceof CustomException) {
return ['custom_context' => $e->getCustomProperty()];
}
return parent::exceptionContext($e);
}
در این نسخه از لاراول در postmark transport به جای اتفاق اتفادن خطا ها در سکوت (failing silently) برای خطا ها از throw errors پشتیبانی می کند. برای استفاده از این امکان هیچ تغییری در برنامه شما نیاز نیست. با به روز رسانی به نسخه 6.7.0 لاراول شما می توانید از مزیت های استثنائات در هنگامی که یک postmark مقدار کد وضعیت (status code) 200 را برگشت نمی دهد استفاده کنید.
در این نسخه یک متد مهم به نام withoutRelations() در مدل ها قابل استفاده است که این اجازه را میدهد تا از لود شدن روابط مدل ها در یک queue job جلوگیری کنید.برای درک بهتر توضیحات توسعه دهندگان را در زیر برای شما قرار داده ایم:
" Because loaded relationships also get serialized, the serialized job string can become quite large. To prevent relations from being serialized, you can call the withoutRelations method on the model when setting a property value. This method will return an instance of the model with no loaded relationships. "
ترجمه: از آنجایی که روابط بارگذاری شده نیز serialized می شوند ،جاب (job) سریالیزه شده (serialized) می تواند بسیار بزرگ شود. به همین منظور برای جلوگیری از سریالیزه (serialized) شدن روابط شما می توانید از متد withoutRelations در مدل خود در هنگام تنظیم یک مقدار برای ویژگی استفاده کنید. این روش نمونه ای از مدل را بدون روابط بارگذاری شده برگشت می دهد.
در مثال زیر را برای شما در یک سازنده صف کار (queue job) قرار داده ایم که در آن نمونه از مدل را کپی می کند که تمام روابط در آن تخلیه شده است (نمونه ای بدون بارگذاری روابط):
/**
* Create a new job instance.
*
* @param \App\Podcast $podcast
* @return void
*/
public function __construct(Podcast $podcast)
{
$this->podcast = $podcast->withoutRelations();
}
برای درک بهتر و کسب اطلاعات بیشتر در رابطه با ویژگی های صف ها روی این لینک کلیک کنید...
در این نسخه کالکشن های منابع (Resource collections) می توانند با استفاده از متد preserveQueryParameters() پارامتر های جستجو (query) را در API های طبقه بندی شده نگهداری کنند. برای درک بهتر به قطعه کد زیر نگاه کنید:
return MyResourceCollection::make($repository->paginate())
->preserveQueryParameters();
البته لیست کامل ویژگی های جدید ،تغییرات و موارد رفع شده و نیز تفاوت های بین لاراول ورژن 6.6.2 و 6.7.0 را به همراه یادداشت های منتشر شده برای لاراول را در آدرس گیت هاب آن که در زیر برای شما قرار داده ایم مشاهده کنید:
آدرس مربوط به تغییرات نسخه 6.x لاراول در گیت هاب
آدرس مقایسه لاراول 6.6.2 و 6.7.0
در زیر نیز لیستی از تغییرات این نسخه را مشاهده می کنید:
v6.7.0
Added
Fixed
Changed
نظر شما چیست؟ شما می توانید نظرات ،پیشنهادات و اطلاعات خود را در رابطه با این مطلب و موضوعات مربوط از طریق قسمت نظرات با ما و سایر بازدیدکنندگان در میان بگذارید.