برنامه نویس فان | Fun Developer یک آدم ساده که عاشق برنامه نویسی و کد زدنه :) تلاش میکنه تا به بقیه کمک کنه. توسعه دهنده هسته لاراول و فضای اوپن سورس. فاندر پرانتز و کد نیوز.
امروز تیم لاراول نسخه جدید لاراول یعنی 11.19 منتشر کردند. در این ورژن متد هایی مثل "whereNone" به کوئری بیلدر، متد "trim" به کلاس Number و... به فریم ورک لاراول اضافه شدند
اضافه شدن متد "assertExactJsonStructure" به تست ها
یک متد جدید به نام assertExactJsonStructure به تست ها اضافه شد. این متد شبیه متد assertJsonStructure هست با این تفاوت که در متد assertExactJsonStructure تمامی کلید هایی که مشخص میکنه در response درخواست ما باید وجود داشته باشد و گرنه تست ما خطا میخوره:
/*
{
"data": {
"id": 1,
"name": "Milwad",
"email": "milwad.dev@gmail.com"
}
}
*/
// ❌
$response->assertExactJsonStructure([
'data' => [
'name',
'email',
],
]);
// ✅
$response->assertExactJsonStructure([
'data' => [
'id',
'name',
'email',
],
]);
در مثال اول بخاطر اینکه ما تمامی کلید های response رو مشخص نکردیم تست ها خطا داد اما در مثال دومی تمامی کلید ها مشخص شد و تست ها با موفق PASS شد.
برای دیدن این Pull Request کلیک کنید.
اضافه شدن متد "whereNone" به کوئری بیلدر
این متد شبیه متد whereAny
و whereAll
هست و کار این متد اضافه کردن where برای چندین ستون با یک متد در دیتابیس هست:
$users = DB::table('users')
->where('isAvailable', true)
->whereNone([
'first_name',
'last_name',
'email',
], 'LIKE', 'milwad%')
->get();
/*
SELECT *
FROM users
WHERE isAvailable = true AND NOT (
first_name LIKE 'milwad%' OR
last_name LIKE 'milwad%' OR
email LIKE 'milwad%'
)
*/
برای دیدن این Pull Request کلیک کنید.
اضافه شدن متد "withoutHeader" به تست ها
در ورژن جدید لاراول یک متد جدید به تست ها اضافه شده که بتونید یک سری هدر هایی که میخواهید برای یک درخواست حذف کنید:
$this->withoutHeader('Token')->get(...);
در اینجا ما یک هدری به نام Token
در درخواستی که میخوایم بزنیم حذف کردیم.
برای دیدن این Pull Request کلیک کنید.
اضافه شدن متد های "assertSeeHtml" به تست ها
متد assertSeeHtml پشت پرده از متد assertSee استفاده میکنه و پارامتر escape به صورت false ارسال میکنه. حالا ممکنه بپرسید پارامتر escape چیه هست و چیکار میکنه؟ این پارامتر میاد کد HTML ما رو به صورت encode در یک رشته میریزه:
$response->assertSeeHtml('milwad');
$response->assertSeeHtmlInOrder([
'milwad', 'parantes.ir', 'code-news.com'
]);
$response->assertDontSeeHtml('milwad');
برای دیدن این Pull Request کلیک کنید.
اضافه شدن متد "trim" به کلاس Number
در ورژن جدید لاراول ما میتونیم با استفاده از متد trim
عدد 0 اعشاری اعداد رو پاک کنیم:
$this->assertSame(16, Number::trim(16));
$this->assertSame(160, Number::trim(160));
$this->assertSame(16, Number::trim(16.0));
$this->assertSame(16.3, Number::trim(16.3));
$this->assertSame(16.3, Number::trim(16.30));
$this->assertSame(16.3456789, Number::trim(16.34567890000));
در اینجا ما تونستیم تمامی اعداد 0 از اعداد اعشاری پاک کنیم؛ فقط دقت کنید که عدد 0 پاک میشه و نه هر عددی.
برای دیدن این Pull Request کلیک کنید.
تغییرات جزئی:
- فیکس کردن نوع خروجی متد wait در اینترفیس IlluminateContractsProcessInvokedProcess پروسه - #52304
- اضافه کردن phpdoc به سرویس پروایدر - #52298
- آپدیت کردن docblock کوئری بیلدر - #52299
- اضافه کردن union به runPaginationCountQuery برای دیتای صفحه بندی - #52314
- آپدیت کردن type-hint های سرویس پروایدر اصلی - #52308
- فیکس کردن ریلیشن through با استفاده از تایپ هینت - #52318
- اضافه کردن متد success به کنسول - #52310
- فیکس کردن تست های کامند MakeMail (ساخت ایمیل) - #52329
اولین نفر باش که نظر ثبت میکنی :) یعنی یه کامنت به ما نمیرسه 😁