مطابق روند قبل در توسعه لاراول این هفته نیز شاهد انتشار یک به روز رسانی دیگر برای نسخه 6 لاراول (Laravel 6.8.0) بودیم که در این مطلب قصد داریم به معرفی تغییرات و ویژگی های جدید در این نسخه بپردازیم پس در ادامه با ما همراه باشید.
یکی دیگر از ویژگی های این نسخه قرار داده شدن ArrayAccess ها در Responses می باشد. طبق اطلاعات منتشر شده تیلور اوتول (Taylor Otwell) ArrayAccess را در کلاس های JsonResponse و TestResponse پیاده سازی کرده است (قرار داده است). در این حالت اگر می خواهید که دسترسی به آرایه ها را در داده های JSON به صورت آزمایشی یا یک نمونه از JsonResponse بدست بیاوردی کاری ساده تر خواهد بود. دز زیر توضیحاتی از تیلور اوتول را برای شما قرار داده ایم که بیان دلیل این که این یک ویژگی مفید برای استفاده است را بیان میکند:
متن اصلی:
When building / testing and JSON API, I like to sometimes interact with the raw JSON payload returned in the response. Normally you would have to access this via $response->original['foo']; however, with this change I implement ArrayAccess on both JsonResponse and TestResponse in order to be able to proxy directly into the response JSON without going through the original property.
ترجمه:
در زمان ساخت ،آزمایش (testing) و کار با API جی سون ، گاهی اوقات دوست دارم تا با JSON بخام برگشت داده شده تعامل داشته باشم و کار کنم. که به طور معمول باید به شکل استفاده از $response->original['foo']; به آن دسترسی پیدا کنیم ،با این وجود با این تغییر جدید من ArrayAccess در JsonResponse و TestResponse پیاده سازی میکنم تا بتوانم بدون گذشتن از خاصیت اصلی ، مستقیماً به پاسخ JSON پاسخ دهیم.
در زیر یک مثال سریع از PRرا برای شما قرار داده ایم:
// In a test...
Route::get('/', function () {
return ['servers' => ['foo', 'bar']];
});
$response = $this->get('/');
// Before
$this->assertCount(2, $response->original['servers']);
// After
$this->assertCount(2, $response['servers']);
دیگر ویژگی جدید در این نسخه امکان استفاده پکیج ها از تم سفارشی Markdown Mail Themes است.
مطابق گفته تیم توسعه لاراول اکنون پکیج ها می توانند از تم های سفارشی نشانه گذاری استفاده کنند. اکنون ، یک پکیج می تواند چیزی مانند مثال زیر را استفاده کند:
mailcoach::mails.layout.mailcoach
پشتیبانی تودرتو (Nested Support) در assertViewHas()
در این نسخه اعلان ها در TestResponse::assertViewHas() از بررسی آرایه های تودرتو پشتیبانی می کنند. برای درک بهتر به کد زیر دقت کنید:
$this->get('/page')
->assertViewHas('page', [
'component' => 'PageComponent',
'url' => '/page',
'version' => null,
'props' => [
'user_name' => 'John Doe'
]
]);
حالا می توانید یک ویژگی به شکل خام جداگانه ایجاد کنید. (Raw Attribute)
اکنون می توانید مقادیر خام (row) را برای ویژگی های مدل منحصر به فرد را با استفاده از setRawAttribute() ایجاد کنید. برای درک بهتر به کد زیر دقت نید.
// Set attribute to value.
$model->setRawAttribute('key', $value);
// Set attribute to value and also sync to original attribute.
$model->setRawAttribute('key', $value, true);
فلگ (خاصیت) Force برای برای دستور artisan make:controller
درست شبه به مدل ها ،می توانید با استفاده از دستور make: controller ایجاد کنترلر را به شکل force (اجبار) انجام بدهید. حالت force زمانی مفید است که در زمان ایجاد یک کنترلر از نوع ریسورس فراموش کرده باشید که –resource را قرار داده باشید و بخواهید کنترلر را دوباره ایجاد کنید و این خاصیت باعث میشود کنترلر دوباره ساخته شده و جایگزین شود (از نو ساخته شود). شما می توانید به شکل زیر از این حالت استفاده کنید:
php artisan make:controller --force --resource ExampleController
ایجاد Seeder با دستور artisan make:model:
به کمک فلگ (خاصیت) –seed در دستور make:model artisan می توانید همزمان با ایجاد مدل یک Seeder هم برای مدل مربوط با نام مدل ایجاد کنید. برای درک بیشتر به کد زیر دقت کنید:
# creates PostSeeder class
artisan make:model --seed Post
البته لیست کامل ویژگی های جدید ،تغییرات و موارد رفع شده و نیز تفاوت های بین لاراول ورژن 6.8.0 و 6.7.0 را به همراه یادداشت های منتشر شده برای لاراول را در آدرس گیت هاب آن که در زیر برای شما قرار داده ایم مشاهده کنید:
آدرس مربوط به تغییرات نسخه6.x لاراول در گیت هاب
آدرس مقایسه لاراول 6.8.0 و 6.7.0
در زیر نیز لیستی از تغییرات این نسخه را مشاهده می کنید:
v6.8.0
Added
Fixed
Changed
نظر شما چیست؟ شما می توانید نظرات ،پیشنهادات و اطلاعات خود را در رابطه با این مطلب و موضوعات مربوط از طریق قسمت نظرات با ما و سایر بازدیدکنندگان در میان بگذارید.