.

تغییرات لاراول 8

بررسی مهم ترین تغییرات لاراول 8

تهیه شده توسط امیر رضا غفاری

کارشناس سئو و دیجیتال مارکتینگ در شرکت تابان شهر

تغییرات لاراول 8

احتمالا میدانید که لاراول یکی از پر طرفدارترین فریم ورک های زبان php است که به صورت متن باز یا (open source) میباشد. این فریم ورک توسط Taylor Otwell برای ایجاد آسان تر برنامه های تحت وب توسعه و ساخته شده است. هر ساله در تابستان لاراول در همایشی از نسخه جدید خود رونمایی میکند. امسال این همایش به صورت آنلاین برگذار شد و 15 سخنران در این همایش بودند که Taylor Otwell اصلی ترین آنها بود. نسخه جدید لاراول (لاراول 8) در تاریخ 29 سپتامبر 2020 یعنی 8 مهر 99 رونمایی شد. در این نسخه لاراول تغییرات بسیاری صورت گرفته است که در ادامه به آنها خواهیم پرداخت ، در ادامه به طور کامل به تغییرات لاراول8  خواهیم پرداخت پس تا آخر این مقاله با تابان شهر همراه باشید.

همین حالا برای طراحی سایت کسب و کارتان اقدام کنید جهت مشاوره رایگان روی لینک زی کلیک کنید

Laravel Jetstream

بیکی از بزرگترین تغییرات لاراول 8 همین بخش است. این بخش کارهایی که مربوط به احراز هویت است را انجام میدهد. Jetstream برای ثبت نام ، تایید ایمیل ، احراز هویت دو مرحله ای ، مدیریت نشست ها ، نمایش سایر نشست های فعال و خروج کاربر ساخته شده است. که یکی از کار های اولیه برای برنامه های تحت وب است.
تغییرات لاراول 8

مدیریت توکن های

در صورتی که برنامه شما api هایی را در اختیار کاربران قرار می‌گذارد با افزودن یک مقدار به فایل پیکربندی Jetstream می‌توانید ایجاد api ، دسترسی ، مدیریت و نمایش آن را به این پک بسپارید این پکیج در اصل از پکیج sanctum برای ایجاد توکن استفاده می‌کند.

پوشه models و models factory”

از دیگر تغییرات لاراول 8 تغیر پوشه models میباشد. این تغیر بعد از درخواست های زیاد از سوی توسعه دهندگان بالاخره در نسخه لاراول 8 صورت پذیرفت. در این نسخه مدل ها را در پوشه app/models میسازند. Model factory ها هم از تغییرات لاراول 8 بی بهره نماندند. در این نسخه از لاراول مدل فکتوری ها بر اساس کلاس ها (class based) تعیین میشوند. ساختار این بخش به طور کامل تغیر پیدا کرده است و به صورت کلی بازنویسی شده اند. قبل از این نسخه فکتوری ها یک فایل ساده بودند. حالا که فکتوری ها به شکل کلاس درآمده اند کدنویسی state های گوناگون و سایر helper ها بسیار ساده تر از قبل خواهد بود. همچنین ایجاد روابط بین مدل ها هم بسیار آسان تر از قبل است.

تجمیع migration ها

گر یک پروژه طراحی سایت بزرگ را با php توسعه میدهید و تعداد زیادی پوشه migration دارد تغییرات لاراول 8 بسیار به کارتان می‌آید. با زدن کد زیر یک فایل SQL در مسیر database/schema برای شما ایجاد می‌شود که شامل کد های SQL مورد نیاز برای ایجاد دیتابیس برنامه شما است:

php artisan schema:dump

به طور خودکار این کد فایل های migration را از بین نمیبرد اما اگر شما بخواهید میتوانید این کار را انجام دهید برای این کار باید این کار را انجام دهید :

php artisan schema:dump –prune

اگر فایل migration در طول زمان زمان به پروژه شما افزوده شود شما میتوانید دستور Schema:Dump را انجام دهید تا migration های جدید به انتهای فایل SQL ای قبلا ساختید اضافه شود. به علت تغییرات لاراول 8 از این به بعد پس از انجام دستور php artisan migrate اول فایل SQL را اجرا میکند و سپس به سراغ فایل های migration میرود.

اجرای دسته ای کلاس های job

یکی از تغییرات لاراول 8 که بسیار هم مفید است اجرای دسته ای کلاس های job میباشد. پس از این تغیر قابلیت امکان اجرای همزمان چندین job موجود در صف را برای توسعه دهندگان فراهم شده است. همچنین شما میتوانید callback هایی را بنویسید تا پس از اجرای دسته ای job ها به اجرا در آیند. این callback ها سه نوع هستند که به آنها اشاره میکنیم : Then () : زمانی اجرا می‌شود که همه job های داخل دسته با موفقیت اجرا شده اند. Catch () : زمانی اجرا می‌شود که به اجرا در آمدن نخستین job با خطا مواجه شود Finally () : زمانی اجرا می‌شود که اجرای job های یک دسته به اتمام می‌رسد. (بعضی از آن‌ها ممکن است با موفقیت اجرا شده باشند و بعضی دیگر به علت خطا، کامل اجرا نشده باشند) البته قابلیت های ویژه تر دیگری هم به بخش job اضافه شده اند که اگر مشتاق هستید بدانید پیشنهاد میکنیم در این خصوص مطالعه کنید.

Rate limiting

از تغییرات لاراول 8 میتوان به Rate limiting هم اشاره کرد. با این قابلیت شما میتوانید Facade جدیدی به نام RateLimiter امکان محدود کردن دسترسی کاربران به یک مسیر مشخص را به صورت خاص و با قدرت بیشتری به اجرا در آورید. با استفاده از این Facade شما یک تابع callback مشخص میکنید و برای آن یک نام اختصاص میدهید. ورودی این تابع Request میباشد. همچنین در این تابع شما میتوانید بر اساس ip ، سطح دسترسی یا هر چیز دیگری دسترسی به مسیری که در نظر دارید را محدود کنید. یک نمونه از انواع این قابلیت را میتوانید در تکه کد زیر ملاحظه کنید.

use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Support\Facades\RateLimiter;RateLimiter::for(‘global’, function (Request $request) {
return $request->user()->vipCustomer()
? Limit::none()
: Limit::perMinute(100);
});

تغییرات لاراول 8

حالت maintenance

در حال حاضر اگر دستور php artisan down را وارد کنید سایت شما به حالت تعمیر یا maintenance در می آید حالا اگر بخواهید دسترسی افرادی را به سایت باز کنید باید ip address این افراد را به برنامه بدهید تا برای آنها دسترسی ایجاد شود. این قابلیت چالش های زیادی را به همراه دارد و بسیار محدود است مثلا اگر ip یکی از افردا تغییر کند شما با مشکل مواجه می‌شوید
در تغییرات لاراول 8 شما میتوانید هنگام اجرای دستور down به آن عبارت –secret و یک مقدار دلخواه مشخص کنید مثلا : php artisan down –secret=tabane-shahr

با اجرای این دستور لاراول مقداری که در secret تعریف کرده اید را به یک مسیر در برنامه شما تبدیل میکند و هنگامی که کاربران به آن درخواست دهند تا یک کوکی برای آنها در مرورگر ذخیره میشود و به صفحه اصلی هدایت می‌شوند.تا زمانی که این کوکی ها معتبر باشند کاربران میتوانند سایت شما را قبل از تکمیل پیش نمایش کنند

سفر زمان در تست

از دیگر ویژگی های جذاب تغییرات لاراول 8 سفر در زمان است. هنگام ایجاد تست معمولا این نیاز برایمان پیش می‌آید که بتوانیم زمانی که توابع now() یا Carbon::now() بر می‌گردانند را تغییر دهیم. در نسخه جدید لاراول انجام این کار بسیار راحت است.

کلام پایانی

در این مطلب سعی کردیم به اصلی ترین تغییرات لاراول 8 بپردازیم برای. لاراول هر سال آپدیت های زیادی بر نسخه های خود میدهد تا باگ ها را رفع کند و امنیت خود را بهبود ببخشد. اینها قابلیت های اصلی بودند که به این نسخه افزوده شده بودند البته امکانات خوب دیگری هم به این نسخه اضافه شدند که کمی جزئی تر هستند و پیشنهاد میکنیم در مورد آنها تحقیق و مطالعه کنید. در پایان امیدواریم این مطلب برایتان مفید بوده باشد و از آن بهره برده باشید.

همین حالا برای طراحی سایت کسب و کارتان اقدام کنید جهت مشاوره رایگان روی لینک زی کلیک کنید

شاید دوست داشته باشید بدانید

نظرات شما عزیزان…

0 Comments

ارسال نظر

نشانی ایمیل شما منتشر نخواهد شد.