تغییرات Laravel 8

تغییرات laravel 8

با انتشار Laravel 8 بسیاری از ویژگی‌ها از جمله:

  1. jetstream
  2. models directory
  3. model factory classes
  4. migration squashing
  5. rate-limiting improvements
  6. time testing helpers
  7. dynamic blade components
  8. و …

به این فریم‌ورک اضاف شده‌اند و شما می‌توانید از آن‌ها در برنامه‌های Laravel خود استفاده کنید. درحال حاضر تیم توسعه Laravel هر ۶ ماه یک نسخه جدید را منتشر می‌کند و شما می‌توانید روند انتشار نسخه‌های جدید این فریم‌ورک را در این لینک مشاهده کنید.

Laravel Jetstream

با استفاده از Laravel Jetstream در Laravel UI scaffolding موجود در نسخه‌های قبل بهبودهایی به‌وجود خواهد آمد. این یک نقطه شروع برای پروژه‌های جدید از جمله login، registration، email verification، two-factor authentication، session management، API پشتیبانی Laravel و team management.

Models Directory

در نسخه جدید، ما شاهد مسیر app/Models در اسکلت برنامه Laravel خود خواهیم بود و به این صورت تمام دستور‌های generator فرض می‌کنند که modelها در مسیر app/Models وجود دارند. البته اگر این دایرکتوری وجود نداشته باشد، فریم‌ورک فرض را بر این می‌گذارد که modelهای موجود در برنامه درون پوشه app/ نگهداری می‌شوند.

Model Factory Classes

Eloquent model factoryها در نسخه Laravel 8 با پشتیبانی بهبود یافته از روابط بین factoryها مبتنی بر class هستند. کدهای زیر، سینتکس جدید و بهبود یافته factoryها است که برای تولید رکورد‌های جدید می‌توانید از آنها استفاده کنید:

use App\Models\User;

User::factory()->count(50)->create();

// using a model state "suspended" defined within the factory class
User::factory()->count(5)->suspended()->create();

Migration Squashing

اگر برنامه‌ شما حاوی فایل‌های migration زیادی باشد، می‌توانید با استفاده از Squash آنها را به یک فایل SQL تبدیل می‌کند. این فایل ابتدا هنگام اجرای migrationها اجرا می‌شود و به دنبال آن فایل‌های دیگری که migration آنها انجام نشده و بخشی از فایل squashed schema نیستند، اجرا می‌شوند. شما با Squash کردن migrationهای موجود می‌توانید فایل‌های migration را کاهش دهید و بدین صورت عملکرد برنامه در هنگام اجرای تست‌ها افزایش می‌یابد.

بهبود Rate Limiting

Laravel 8 ضمن پشتیبانی از سازگاری با نسخه‌های قبلی throttle middleware و ارائه انعطاف‌پذیری بیشتر، باعث بهبود عملکرد Rate Limiting شده است و شما با استفاده از کدهای زیر می‌توانید Rate Limiterها را در Laravel 8 تعریف کنید.

use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Support\Facades\RateLimiter;

RateLimiter::for('global', function (Request $request) {
    return Limit::perMinute(1000);
});

همان‌طور که مشاهده می‌کنید با استفاده از متد for() می‌توانید کنترل درخواست‌های HTTP را به صورت پویا در اختیار خودتان بگیرید.

Time Testing Helpers

کاربران Laravel با استفاده از کتابخانه Carbon PHP، از کنترل کامل تغییر زمان برخوردار بوده‌اند. اما Laravel با ارائه test helperها که می‌توانید توسط آن زمان برنامه آزمایشی خود را تغییر دهید، یک قدم به آینده نزدیک‌تر شده است:

// Travel into the future...
$this->travel(5)->milliseconds();
$this->travel(5)->seconds();
$this->travel(5)->minutes();
$this->travel(5)->hours();
$this->travel(5)->days();
$this->travel(5)->weeks();
$this->travel(5)->years();

// Travel into the past...
$this->travel(-5)->hours();

// Travel to an exact time...
$this->travelTo(now()->subHours(6));

// Return back to the present time...
$this->travelBack();

هنگام استفاده از این متد، زمان بین هر تست مجددا تنظیم می‌شود.

Dynamic Blade Components

گاهی اوقات لازم است شما یک کامپوننت Blade را در runtime به صورت پویا رندر کنید. حال با Laravel 8 می‌توانید برای ارائه کامپوننت‌های پویا از <x-dynamic-component/> استفاده کنید.

<x-dynamic-component :component="$componentName" class="mt-4" />

کسب اطلاعات بیشتر از Laravel 8

اینها برخی از ویژگی‌‌های برجسته و جدید در Laravel 8 بودند و برای دیدن لیست کامل تغییرات می‌توانید به Laravel 8 release notes و upgrade guide مراجعه کنید. البته اگر به دنبال راهی آسان برای به‌روزرسانی برنامه‌تان هستید، Laravel Shift را فراموش نکنید.

مانند همه نسخه‌های منتشر شده، شرکت در توسعه Laravel برای همه‌گان ممکن است و از تمام کسانی که تا به حال در توسعه و استفاده از فریم‌ورک Laravel کمک کرده‌اند، تشکر می‌کنیم.

منبع: https://laravel-news.com/laravel8

برچسب‌ها:

خدمات رایگان لیارا

۲.۵ گیگابایت فضای ذخیره‌سازی ابری رایگان

۲.۵ گیگابایت Object Storage سازگار با پروتکل S3 با دیسک‌های SSD به‌صورت رایگان دریافت کنید.

هاست رایگان برای دیتابیس‌

دیتابیس‌های MariaDB، PostgreSQL و Redis را فقط با یک کلیک و به‌صورت رایگان تهیه کنید.

سرویس DNS رایگان

به سادگی دامنه‌تان را اضافه کنید و به صورت رایگان رکورد‌های آن را مدیریت کنید.

۱۰۰ هزار تومان اعتبار اولیه

بعد از ثبت نام در لیارا مبلغ ۱۰۰ هزار تومان اعتبار هدیه دریافت می‌کنید که با توجه به ساعتی بودن هزینه سرویس‌ها، می‌توانید تمامی خدمات پولی را برای چندین هفته رایگان استفاده کنید.

ارسال ۱۰۰ ایمیل تراکنشی رایگان در هر ماه

در سرویس ایمیل لیارا شما می‌توانید تا ۱۰۰ ایمیل رایگان در هر ماه ارسال کنید و فقط برای بیش از آن هزینه پرداخت کنید. (به‌همراه دسترسی SMTP)

هاست رایگان برای انواع وبسایت

تفاوتی ندارد برای وبسایت خود از Node استفاده می‌کنید یا Laravel و Django، در لیارا می‌توانید به صورت کاملا رایگان آن را میزبانی کنید.

توسعه‌دهندگان درباره‌ی ما چه می‌گویند

تجربه کار باliara_cloud@امروز خیلی خوب بود. یکی از سرویس هام رو منتقل کردم روش و راضیم. انقد سریع و جذاب کارم راه افتادم اصن باورم نمیشد! برعکس سرویس های PaaS دیگه با اون همه پیچیدگیشون. دمتون گرم
...

MohammadReza
liara testimonial
keikaavousi

بعد از بسته شدن @fandoghpaas و ناراحتی همه‌مون از اینکه یه سرویس خوب و صادق نمی‌تونه از پس هزینه‌ها بر بیاد، سرویسم رو منتقل کردم به پاس لیارا (https://liara.ir @liara_cloud) . تجربه راحت و خوب. تفاوت‌هایی داشت که کمی کار می‌خواست ولی تا الان کاملا راضی.

jadi
liara testimonial
jadi

یه خسته نباشید باید به تصمیمliara_cloud@بگم،
بعد از چندین روز سرکله زدن با سرویس های مشابه بالاخره تصمیم گرفتم لیارا رو امتحان کنم و باور نمیشه ۱۰ دقیقه بیشتر وقت نبرد،
دمتون گرم.

Arch
liara testimonial
EbadiDev

واسه سرویس PaaS با اختلاف لیارا بهترین رابط کاربری داره و یکی از مزیت‌های سرویس دیتابیس‌شون اینه که خودشون به صورت دوره‌ای بکآپ میگیرن.
...

Ali Najafi
liara testimonial
me_ali_najafi

یکی از کارهای خوبی که جدیداً میکنم اینه که یه دیتابیس روی لیارا میسازم و به پروژه وصل میکنم اینطوری هم خونه و هم محل کار دیتابیس بروز رو دارم و راحت میتونم ادامه بدم کار روliara_cloud@

Navid
liara testimonial
1navid

عاشقliara_cloud@شدم درسته در حد AWS نیست ولی خب تجربه خوبی واسه پروژه های داخل ایران ارائه میده، میتونم رو CD هم اجراش کنم

Amir H Shekari
liara testimonial
vanenshi

همراه شما هستیم

در خصوص سفارش یا استفاده از سرویس‌ها سوالی دارید؟
تلفن واحد فروش:
۰۲۵-۳۳۵۵۷۶۱۹ (روزهای کاری ۹ الی ۱۷)
تلفن واحد فروش: ۳۳۵۵۷۶۱۹-۰۲۵ (روزهای کاری ۹ الی ۱۷)