لاراول 10 | آشنایی با ویژگی های جدید Laravel10

آشنایی با ویژگی های لاراول 10

لاراول 10 نسخه‌ی جدید فریمورک لاراول است که توسط تیم توسعه لاراول ارائه شده است.
بهترین راه برای کسب دانش و مهارت‌های لازم برای توسعه وب، یافتن منبعی معتبر و جامع برای آموزش است. در سایت لاراول کارا، تمرکز ما بر روی ارائه آموزش‌های جامع و عملی درباره لاراول است. از مبانی اساسی تا تکنیک‌ها و مفاهیم پیشرفته، با ما یادگیری لاراول را در محیطی دوستانه و قدم به قدم تجربه کنید.

همراه با ما، با معرفی ویژگی‌های لاراول 10، به روزترین نسخه این فریمورک قدرتمند، آشنا شوید، شامل بهبودهای در عملکرد، اضافه شدن قابلیت‌های جدید، بهبود نحوه‌ی تست و دیباگ کردن، بهبود رابط کاربری و موارد دیگر است.

# لاراول 10

همانطور که ممکن است بدانید، با انتشار لاراول 8، لاراول به انتشارهای سالیانه گذار کرد. در گذشته، نسخه‌های اصلی هر ۶ ماه یکبار منتشر می‌شدند. این تغییر به منظور کاهش بار نگهداری بر عهده جامعه و چالش برانگیز کردن تیم توسعه‌ی لاراول برای ارائه ویژگی‌های جدید فوق‌العاده و قدرتمند بدون ایجاد تغییرات قابل توجه انجام شده است. بنابراین، تیم توسعه لاراول ویژگی‌های قوی‌ای را در لاراول ۹ ارائه داده‌ایم که سازگاری با نسخه‌های قبلی را حفظ می‌کند.

لاراول 10 ادامه‌ی بهبودهای انجام شده در نسخه‌های لاراول 9 را با معرفی نوع‌های آرگومان و برگشتی در تمام متدهای اسکلت برنامه و همچنین تمام فایل‌های استاب استفاده شده برای تولید کلاس‌ها در سراسر فریمورک به ارمغان می‌آورد. علاوه بر این، یک لایه انتزاع جدید و کاربر پسند برای شروع و تعامل با فرآیندهای خارجی معرفی شده است. علاوه بر این، لاراول پنانت (Laravel Pennant) معرفی شده است تا رویکردی عالی برای مدیریت “پرچم‌های ویژگی” برنامه شما فراهم کند.

پرچم‌های ویژگی (Feature Flags): اشاره به یک رویکرد است که در توسعه نرم‌افزار مورد استفاده قرار می‌گیرد. پرچم‌های ویژگی به توانایی کنترل و فعال‌سازی یا غیرفعال‌سازی ویژگی‌های مختلف در نرم‌افزار اشاره دارند.
به طور معمول، هنگام توسعه نرم‌افزار، ممکن است نیاز باشد که برخی از ویژگی‌ها را برای کاربران نهایی فعال کنیم و برخی را غیرفعال نگهداریم. با استفاده از پرچم‌های ویژگی، می‌توانیم این تغییرات را بدون نیاز به تغییر کد منبع اصلی، با استفاده از تنظیمات پرچم‌های ویژگی مدیریت کنیم.

# لاراول 10 از چه ورژن PHP ای پشتیبانی میکند

فریمورک لاراول در نسخه 10 از پشتیبانی PHP با ورژن‌های کمتر یا مساوی با 8.0 صرف نظر خواهد کرد. نسخه حداقل مورد نیاز PHP برای لاراول 10، ^8.1 است. با مشاهده مقایسه بین مستر و نسخه های لاراول 9، می‌توانیم انتظار داشته باشیم که ویژگی‌های 8.1 مانند خصوصیت‌های فقط خواندنی (readonly properties) در فریمورک استفاده شوند.

# سیاست پشتیبانی

برای همه نسخه‌های لاراول، برطرف کردن باگ‌ها برای ۱۸ ماه و برطرف کردن مشکلات امنیتی برای ۲ سال پشتیبانی می‌شود. برای تمام کتابخانه‌های اضافی، از جمله Lumen، فقط آخرین نسخه اصلی برای برطرف کردن باگ‌ها پشتیبانی می‌شود. علاوه بر این:

نسخه PHP (*) تاریخ انتشار رفع اشکال تا رفع امنیتی تا
8 7.3 – 8.1 September 8th, 2020 July 26th, 2022 January 24th, 2023
9 8.0 – 8.2 February 8th, 2022 August 8th, 2023 February 6th, 2024
10 8.1 – 8.2 February 14th, 2023 August 6th, 2024 February 4th, 2025
11 8.2 Q1 2024 August 5th, 2025 February 3rd, 2026

# نوع‌ها در لاراول 10

در توسعه‌ی لاراول، Nuno Maduro به تعیین نوع‌ها (type-hints) در اسکلت برنامه و فایل‌های استاب کمک کرده است.

در انتشار اولیه‌ی لاراول، تمام قابلیت‌های تعیین نوع موجود در زمان رونمایی PHP استفاده شده است. با این حال، در سال‌های بعد، قابلیت‌های جدیدی به PHP اضافه شده است، از جمله نوع‌های ابتدایی اضافی، نوع برگشتی و نوع‌های اتحادی.

Laravel 10 اسکلت برنامه و تمام فایل‌های استاب مورد استفاده توسط فریمورک را به‌روزرسانی کرده است تا تعیین نوع‌ها را به تمام امضاهای متد معرفی کند. به علاوه، اطلاعات اضافی “داک بلاک (doc block)” تعیین نوع حذف شده است.

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

# لاراول Pennant چیست؟

لاراول Pennant توسط Tim MacDonald توسعه داده شده است.

یک پکیج ترد پارتی جدید به نام “لاراول Pennant” منتشر شده است. لاراول Pennant رویکردی سبک و ساده را برای مدیریت پرچم‌های ویژگی برنامه شما ارائه می‌دهد. از طریق پکیج Pennant، پشتیبانی از درایور آرایه در حافظه و درایور پایگاه داده برای ذخیره “feature flags” فراهم می‌شود.

ویژگی‌ها به سادگی با استفاده از متد Feature::define قابل تعریف هستند:

use Laravel\Pennant\Feature;
use Illuminate\Support\Lottery;
 
Feature::define('new-onboarding-flow', function () {
    return Lottery::odds(1, 10);
});

با تعریف یک ویژگی، شما به راحتی می‌توانید تشخیص دهید که آیا کاربر فعلی به این ویژگی دسترسی دارد یا خیر:

if (Feature::active('new-onboarding-flow')) {
    // ...
}

البته، برای راحتی، درایکتیوهای بلید در دسترس شما هستند:

@feature('new-onboarding-flow')
    <div>
        <!-- ... -->
    </div>
@endfeature

Pennant امکانات و API‌ های پیشرفته‌تری را نیز ارائه می‌دهد. برای کسب اطلاعات بیشتر، لطفاً از مستندات جامع Pennant در سایت لاراول کارا استفاده کنید.

# تعامل با فرآیندها با Process در لاراول 10

لایهٔ انتزاعی فرآیند توسط Nuno Maduro و تیلور اوتوول ارائه شده است.

لاراول در زیر نسخه های 10 یک لایهٔ انتزاعی زیبا برای شروع و تعامل با فرآیندهای خارجی را با استفاده از یک فاساد جدید به نام Process معرفی می‌کند:

use Illuminate\Support\Facades\Process;
 
$result = Process::run('ls -la');
 
return $result->output();

حتی می‌توانید فرآیندها را در پولها آغاز کنید که اجرا و مدیریت فرآیندهای همروند را راحت می‌کند:

use Illuminate\Process\Pool;
use Illuminate\Support\Facades\Process;
 
[$first, $second, $third] = Process::concurrently(function (Pool $pool) {
    $pool->command('cat first.txt');
    $pool->command('cat second.txt');
    $pool->command('cat third.txt');
});
 
return $first->output();

علاوه بر این، می‌توانید فرآیندها را برای تست‌های راحت فیک کنید:

Process::fake();
 
// ...
 
Process::assertRan('ls -la');

برای کسب اطلاعات بیشتر در مورد تعامل با فرآیندها، لطفاً از مستندات جامع فرآیند در مستندات فارسی لاراول 10 استفاده کنید.

# تست Profiling در لاراول 10 چطور انجام میشه؟

تست پروفایلینگ توسط Nuno Maduro توسعه داده شده است.

دستور تست Artisan یک گزینه جدید به نام –profile دریافت کرده است که به شما امکان می‌دهد به راحتی تست‌های کندتر در برنامهٔ خود را شناسایی کنید:

php artisan test --profile

برای راحتی، تست‌های کندتر به طور مستقیم در خروجی CLI نمایش داده می‌شوند:

تست Profiling در لاراول 10

# Pest scaffolding در لاراول 10

Pest scaffolding در لاراول به معنی تهیه‌ی یک ساختار پایه برای ایجاد و اجرای تست‌ها با استفاده از Pest می‌باشد. Pest یک فریم‌ورک تست جدید برای PHP است که توسط Nuno Maduro توسعه داده شده است و برای تست کردن برنامه‌های Laravel مناسب است.

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

اکنون می‌توان پروژه‌های جدید Laravel را به‌صورت پیش‌فرض با ساختار دهی تست Pest ایجاد کرد. برای استفاده از این ویژگی، هنگام ایجاد برنامه جدید با نصب‌کننده لاراول ، با ارائه flag (پرچم) “–pest”، ساختار دهی فعال خواهد شد.

laravel new example-application --pest

# پرسشنامه‌های خط فرمانی (CLI) ژنراتور در لاراول 10

پرسشنامه‌های خط فرمانی ژنراتور توسط جس آرچر توسعه داده شده است.

Generator CLI Prompts در لاراول به پرسشنامه‌هایی اشاره دارد که در زمان استفاده از دستورهای ساخت (مانند دستور make:controller یا make:model) در خط فرمان نمایش داده می‌شوند. این پرسشنامه‌ها از کاربر درخواست ورودی برای تعیین جزئیات مورد نیاز برای ایجاد فایل مربوطه (مانند نام کنترلر یا جدول) می‌کنند. با استفاده از این پرسشنامه‌ها، کاربر می‌تواند با پاسخ دادن به سوالات مربوطه، فرآیند ساخت فایل مورد نظر را سریعتر و ساده‌تر انجام دهد. با اعمال تغییراتی در لاراول، دستورهای ساخت دیگر نیاز به ورودی از کاربر ندارند و در صورت نیاز، پرسشنامه‌های خط فرمانی (Generator CLI Prompts) به‌طور خودکار نمایش داده می‌شوند.

در نسخه 10 لاراول برای بهبود تجربهٔ توسعه‌دهندگان در چارچوب، دستورهای ساخت داخلی لاراول دیگر نیازی به هیچ ورودی ندارند. اگر دستورها بدون ورودی فراخوانی شوند، از شما برای آرگومان‌های مورد نیاز سوال خواهید شد.

php artisan make:controller

# تغییرات ظاهری در Horizon و Telescope نسخه 10 لاراول

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

Horizon و Telescope با ظاهری جدید و مدرن به‌روزرسانی شده‌اند که شامل بهبودهایی در تایپوگرافی، فاصله‌بندی و طراحی است.

قابلیت horizon در لاراول 10

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *