نگاهی به ویژگی‌های جدید لاراول 9

لاراول 9لاراول یکی از فریمورک‌های محبوب زبان برنامه نویسی php می‌باشد. که در سال‌های اخیر طرفداران زیادی در بین توسعه دهندگان اپلیکیشن‌های وب پیدا کرده‌است. تا کنون ۸ ورژن از این فریمورک ارائه شده که هر کدام دارای ویژگی‌های جدید و تغییراتی می‌باشد. ورژن ۹ لاراول نسخه LTS (نسخه‌‌ای با پشتیبانی طولانی مدت) خواهد بود. این ورژن در اوایل سال ۲۰۲۲ میلادی (دی ماه ۱۴۰۰) عرضه خواهد شد. در این مقاله ما سعی داریم تا تمام ویژگی‌های جدید و تغییراتی که تاکنون اعلام شده است را معرفی کنید.تاریخ انتشار ورژن ۹ لاراولدر ابتدا زمان عرضه ورژن ۹ لاراول در حدود سپتامبر سال جاری (شهریور ۱۴۰۰) برنامه‌ریزی شده بود. اما در نهایت تیم لاراول تصمیم گرفت تا ورژن جدید را در ژانویه ۲۰۲۲ (دی ماه ۱۴۰۰) عرضه کند در توضیحات این جا به جایی آمده است:لاراول از پکیج‌های مختلفی که در فریم‌ورک Symfony موجود می‌باشند، برای برخی ویژگی‌ها، استفاده می‌کند. ورژن 6.0 سیمفونی در ماه نوامبر سال جاری منتشر می‌شود، بنابراین ما تصمیم گرفتیم تا انتشار نسخه جدید لاراول را تا ژانویه ۲۰۲۲ به تأخیر بیندازیم. با این تاخیر در انتشار ما می‌توانیم از ویژگی‌های جدید ورژن ۶ سیمفونی استفاده کنیم بدون آن که نیاز به آپدیت دوباره فریمورک لاراول برای استفاده از این ویژگی‌ها داشته باشیم. بهتر است که انتشار ورژن‌های سالانه‌ی خود را همیشه ۲ ماه پس از عرضه فریمورک سیمفونی انجام دهیم.این تصمیم باعث انتشار ورژن‌های جدید لاراول در زمانبندی بهتری می‌شود.برنامه ریزی انتشار ورژن‌های بعدی: Laravel 9: January 2022 Laravel 10: January 2023 Laravel 11: January 2024نسخه ۸ پی اچ پی حداقل نسخه در لاراول ۹از آنجا که نسخه جدید لاراول از سیمفونی ورژن ۶ استفاده می‌کند. همچنین فریمورک سیمفونی ورژن ۶ برای اجرا به ۸ php نیاز دارد، بنابراین حداقل ورژن php برای اجرا لاراول 9، نسخه ۸ آن می‌باشد.ویژگی Anonymous Stub Migrationsدر اوایل سال جاری میلادی، نسخه 8.37 لاراول با ویژگی جدیدی به نامAnonymous Migrations انتشار یافت. این ویژگی از برخورد نام ‌کلاس‌های migration با هم جلوگیری می‌کند. در توضیح مختصر این ویژگی می‌توان بیان کرد که این خصوصیت از برخورد و اشتباه شدن migrationهایی که نام کلاس خیلی مشابه‌ی دارند جلوگیری می‌کند. use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::table('people', function (Blueprint $table) { $table->string('first_name')->nullable(); }); ) };زمانی که لاراول 9 عرضه شود این ویژگی به صورت پیش فرض در آن قرار خواهد داشت و با اجرای فرمان php artisan make:migration نمایش داده می‌شود.رابط کاربری جدید برای Query Builderبه لطف Chris Morrell، یکی از ویژگی‌های لاراول ۹ اینترفیس جدید Query Builder می‌باشد. در صفحه گیت هاب merged PR شما می‌توانید اطلاعات جامعی از جزئیات این ویژگی را دریافت کنید. در توضیحات این ویژگی به طور خلاصه آمده است:برای توسعه دهندگان که به تجزیه و تحلیل، refactoring و تکمیل کد در IDE وابسته هستند، فقدان یک رابط کاربری مشترک یا وراثت بین Query\Builder ،Eloquent\Builder و Eloquent\Relation می‌تواند مشکل ساز باشدreturn Model::query() ->whereNotExists(function($query) { // $query is a Query\Builder }) ->whereHas('relation', function($query) { // $query is an Eloquent\Builder }) ->with('relation', function($query) { // $query is an Eloquent\Relation });این ویژگی یک اینترفیس جدید Illuminate\Contracts\Database\QueryBuilder و یک Illuminate\Database\Eloquent\Concerns\DecoratesQueryBuilder را اضافه کرده است.توابع جدید برای رشته‌هااز آنجا که پی اچ پی ۸ حداقل ورژن می‌باشد، Tom Schlick استفاده از توابعstr_contains() str_starts_with() و()str_ends_withیعنی توابعی که در کلاس \Illuminate\Support\Str وجود دارند را تایید کرده است.از SwiftMailer تا Symfony Mailerفریمورک سیمفونی، پکیج SwiftMailer را منسوخ کرده است. لاراول ۹ تغییراتی در استفاده از Symfony Mailer برای ارسال و دریافت ایمیل‌ها ایجاد می‌کند. این امر باعث ایجاد چند تغییر ناگهانی می‌شود. مراجعه به صفحه‌ی گیت هاب PR می‌توانید جزئیات بیشتری از این تغییرات را مشاهده کنید. با انتشار نسخه‌ی پایداری از لاراول ۹، راهنمای استفاده و نحوی کارکرد مدل جدید ارسال و دریافت ایمیل منتشر می‌شود.قابلیت حذف فایل server.phpیک ویژگی جزئی است، اما شما می توانید فایل server.php را از پروژه خود حذف کنید. فایل server.php در داخل فریمورک قرار خواهد گرفت. این فایل فقط برای سرویس php artisan serve استفاده می‌شود.در صورت علاقه به این فریمورک محبوب این پست را ذخیر کرده تا به سرعت از ویژگی‌ها جدید لاراول ۹ مطلع شوید.منبع