برنامه نویس :)
انتشار 400مین نسخه لاراول 5.8.12
دیروز تیم لاراول 400مین ورژن لاراول رو انتشار کردند که متدی جدیدی به نام ()duplicates توی collection یک سری قابلیت ها اضافه و درست شدند.
اول از همه متد ()duplicates که به کلاس Illuminate\Support\Collection اضافه شده:
collect([1,2,1,1,1])->duplicates();
=> Illuminate\Support\Collection {#2938
all: [
2 => 1,
3 => 1,
4 => 1,
],
}
کار این تابع اینه ایندکس هایی که مقادیشون در ارایه تکرار شده رو برمیگردونه:
$item[0] = 1 // تکرار نشده
$item[1] = 2 // تکرار نشده
$item[2] = 1 // تکرار شده
$item[3] = 1 // تکرار شده
$item[4] = 1 // تکرار شده
متدی دیگه ای شبیه ()duplicates به Eloquent اضافه شده, به صورت زیر استفاده میشه
$model->is($another)use App\User;
use App\User;
$one = User::find(1);
$two = User::find(1);
$three = User::find(1);
$users = (new User)->newCollection([$one, $two, $three]);
=> Illuminate\Database\Eloquent\Collection {#2936
all: [
1 => App\User {#2929
id: "1",
name: "Admin",
email: "admin@example.com",
email_verified_at: null,
created_at: "2019-04-16 23:33:30",
updated_at: "2019-04-16 23:33:30",
},
2 => App\User {#2927
id: "1",
name: "Admin",
email: "admin@example.com",
email_verified_at: null,
created_at: "2019-04-16 23:33:30",
updated_at: "2019-04-16 23:33:30",
},
],
}
و همچنین ()getViews اضافه شده به کلاس FileViewFinder که به شما اجازه میده تمام اطلاعات در مورد view فعلی که باگیری شده رو میده. چیز جدیدی اینجا نیست جز اینکه میتونید به views$ در ()getViews دسترسی داشته باشید.
متد ()emailOnFailure زمانی مورد استفاده قرار میگیره که زمانی که یک scheduled command ایمیل دریافت کنید و نسبت به متد emailOutputTo که کاری به نتیجه scheduled task نداره و ایمیلو در هر حال ارسال میکنه.
$schedule->command('my:command')
->onSuccess(function () {
// do something when scheduled command ran successfully
})
->onFailure(function () {
// do something when scheduled command failed
})
->pingOnSuccess('https://example.com')
->pingOnFailure('https://example.com')
->emailOnFailure('johndoe@example.com')
;
و بعدی توی مایگریشن ها نوع SET اضافه شده:
Schema::create('table_name', function (Blueprint $table) {
$table->bigIncrements('id');
$table->set("field_name", [ "Possible", "Values" ]);
$table->timestamps();
});
و اخرین قابلیت اضافه شده میتونید در کویری بیلدر in و not in استفاده کنید به عنوان مثال:
// these two calls produce the same query
$query->where('foo', 'in', [1, 2]);
$query->whereIn('foo', [1, 2]);
// these two calls produce the same query
$query->where('foo', 'not in', [1, 2]);
$query->whereNotIn('foo', [1, 2]);
برای بقیه قابلیت های درست شده و تغییرات این نسخه میتونید به پیج رو نگاه کنید
https://laravel-news.com/laravel-5-8-12
مطلبی دیگر از این انتشارات
مدیریت تاریخ و زمان در لاراول توسط کربن
مطلبی دیگر از این انتشارات
تغییر مهم مسیریابی (routing) در لاراول 8
مطلبی دیگر از این انتشارات
تغییر ابعاد تصویر با توجه به درخواست کاربر در لاراول (کتابخانه Intervention)