انتشار 400مین نسخه لاراول 5.8.12

لاراول 5.8.12
لاراول 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