نسخه:

راهنمای ارتقا

تغییرات با تاثیر زیاد

تغییرات تاثیر متوسط

تغییرات کم تاثیر

ارتقا به 11.0 از 10.x

زمان تخمینی ارتقا: 15 دقیقه

ما سعی می کنیم هر تغییر احتمالی را مستند کنیم. از آنجایی که برخی از این تغییرات شکسته در بخش‌های مبهم فریمورک هستند، تنها بخشی از این تغییرات ممکن است بر برنامه شما تأثیر بگذارد. می خواهید در زمان صرفه جویی کنید؟ می توانید از Laravel Shift برای کمک به ارتقاء خودکار برنامه خود استفاده کنید.

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

احتمال تاثیر: زیاد

PHP 8.2.0 مورد نیاز است

لاراول اکنون به PHP 8.2.0 یا بالاتر نیاز دارد.

وابستگی های composer

شما باید وابستگی های زیر را در فایل برنامه خود به روز کنید composer.json :

  • laravel/framework به ^11.0
  • nunomaduro/collision به ^8.1
  • laravel/breeze به ^2.0 (در صورت نصب)
  • laravel/cashier به ^15.0 (در صورت نصب)
  • laravel/dusk به ^8.0 (در صورت نصب)
  • laravel/jetstream به ^5.0 (در صورت نصب)
  • laravel/octane به ^2.3 (در صورت نصب)
  • laravel/passport به ^12.0 (در صورت نصب)
  • laravel/sanctum به ^4.0 (در صورت نصب)
  • laravel/spark-stripe به ^5.0 (در صورت نصب)
  • laravel/telescope به ^5.0 (در صورت نصب)
  • inertiajs/inertia-laravel به ^1.0 (در صورت نصب)

اگر برنامه شما از Laravel Cashier Stripe، Passport، Sanctum، Spark Stripe یا Telescope استفاده می کند، باید مهاجرت آنها را به برنامه خود منتشر کنید. Cashier Stripe، Passport، Sanctum، Spark Stripe، و Telescope دیگر به طور خودکار مهاجرت ها را از فهرست مهاجرت خود بارگذاری نمی کنند . بنابراین، باید دستور زیر را برای انتشار مهاجرت آنها به برنامه خود اجرا کنید:

php artisan vendor:publish --tag=cashier-migrations
php artisan vendor:publish --tag=passport-migrations
php artisan vendor:publish --tag=sanctum-migrations
php artisan vendor:publish --tag=spark-migrations
php artisan vendor:publish --tag=telescope-migrations

علاوه بر این، باید راهنمای ارتقاء هر یک از این بسته‌ها را مرور کنید تا مطمئن شوید که از هرگونه تغییر اضافی آگاه هستید:

اگر نصب کننده لاراول را به صورت دستی نصب کرده اید، باید نصب کننده را از طریق Composer به روز کنید:

composer global require laravel/installer:^5.6

در نهایت، اگر قبلاً آن را به برنامه خود اضافه کرده باشید، می توانید doctrine/dbal وابستگی Composer را حذف کنید، زیرا لاراول دیگر به این بسته وابسته نیست.

ساختار برنامه

لاراول 11 ساختار برنامه پیش فرض جدیدی را با فایل های پیش فرض کمتر معرفی می کند. یعنی برنامه های جدید لاراول حاوی ارائه دهندگان خدمات، میان افزارها و فایل های پیکربندی کمتری هستند.

با این حال، ما توصیه نمی‌کنیم که برنامه‌های لاراول 10 در حال ارتقاء به لاراول 11 تلاش کنند تا ساختار برنامه خود را تغییر دهند، زیرا لاراول 11 به دقت تنظیم شده است تا از ساختار برنامه لاراول 10 نیز پشتیبانی کند.

احراز هویت

رمز عبور مجدد

اگر «فاکتور کار» الگوریتم هش شما از آخرین بار هش شدن رمز عبور به‌روزرسانی شده باشد، لاراول 11 به‌طور خودکار پسوردهای کاربر شما را در حین احراز هویت مجدداً بازنویسی می‌کند.

به طور معمول، این نباید برنامه شما را مختل کند. با این حال، می توانید این رفتار را با اضافه کردن rehash_on_login گزینه به فایل پیکربندی برنامه خود غیرفعال کنید config/hashing.php :

'rehash_on_login' => false,

قرارداد UserProvider

احتمال تاثیر: کم

قرارداد روش Illuminate\Contracts\Auth\UserProvider جدیدی دریافت کرده است rehashPasswordIfRequired . این روش زمانی که ضریب کار الگوریتم هش برنامه تغییر کرده است وظیفه هش کردن مجدد و ذخیره رمز عبور کاربر در فضای ذخیره سازی را بر عهده دارد.

اگر برنامه یا بسته شما کلاسی را تعریف می کند که این رابط را پیاده سازی می کند، باید rehashPasswordIfRequired متد جدید را به پیاده سازی خود اضافه کنید. پیاده سازی مرجع را می توان در کلاس یافت Illuminate\Auth\EloquentUserProvider :

public function rehashPasswordIfRequired(Authenticatable $user, array $credentials, bool $force = false);

قرارداد Authenticatable

احتمال تاثیر: کم

قرارداد روش Illuminate\Contracts\Auth\Authenticatable جدیدی دریافت کرده است getAuthPasswordName . این روش مسئول بازگرداندن نام ستون رمز عبور موجودیت قابل احراز هویت شما است.

اگر برنامه یا بسته شما کلاسی را تعریف می کند که این رابط را پیاده سازی می کند، باید getAuthPasswordName متد جدید را به پیاده سازی خود اضافه کنید:

public function getAuthPasswordName()
{
return 'password';
}

مدل پیش‌فرض User موجود با لاراول این روش را به‌طور خودکار دریافت می‌کند، زیرا متد در Illuminate\Auth\Authenticatable صفت گنجانده شده است.

کلاس AuthenticationException

احتمال تاثیر: بسیار کم

متد redirectTo کلاس Illuminate\Auth\AuthenticationException اکنون به یک Illuminate\Http\Request نمونه به عنوان اولین آرگومان نیاز دارد. اگر به صورت دستی این استثنا را دریافت می کنید و redirectTo متد را فراخوانی می کنید، باید کد خود را بر این اساس به روز کنید:

if ($e instanceof AuthenticationException) {
$path = $e->redirectTo($request);
}

حافظه پنهان

پیشوندهای کلید کش

احتمال تاثیر: بسیار کم

قبلاً، اگر یک پیشوند کلید حافظه پنهان برای فروشگاه های کش DynamoDB، Memcached یا Redis تعریف می شد، لاراول a را : به پیشوند اضافه می کرد. در لاراول 11، پیشوند کلید کش : پسوند را دریافت نمی کند. اگر می خواهید رفتار پیشوند قبلی را حفظ کنید، می توانید : پسوند را به صورت دستی به پیشوند کلید حافظه پنهان خود اضافه کنید.

مجموعه ها

قرارداد Enumerable

احتمال تاثیر: کم

روش dump قرارداد برای پذیرش یک استدلال Illuminate\Support\Enumerable متغیر به روز شده است . ...$args اگر این رابط را پیاده سازی می کنید، باید پیاده سازی خود را بر این اساس به روز کنید:

public function dump(...$args);

پایگاه داده

SQLite 3.35.0+

احتمال تاثیر: زیاد

اگر برنامه شما از پایگاه داده SQLite استفاده می کند، SQLite 3.35.0 یا بالاتر مورد نیاز است.

casts روش مدل شیوا

احتمال تاثیر: کم

کلاس مدل پایه Eloquent اکنون casts روشی را به منظور پشتیبانی از تعریف casts تعریف می کند. اگر یکی از مدل های برنامه شما casts رابطه ای را تعریف می کند، ممکن است با casts روشی که اکنون در کلاس مدل پایه Eloquent وجود دارد در تضاد باشد.

اصلاح ستون ها

احتمال تاثیر: زیاد

هنگام اصلاح یک ستون، اکنون باید به صراحت تمام اصلاح‌کننده‌هایی را که می‌خواهید پس از تغییر در تعریف ستون حفظ کنید، اضافه کنید. هر گونه ویژگی از دست رفته حذف خواهد شد. به عنوان مثال، برای حفظ ویژگی‌های unsigned ، default و comment ، باید هر اصلاح‌کننده را به طور صریح هنگام تغییر ستون فراخوانی کنید، حتی اگر آن ویژگی‌ها با مهاجرت قبلی به ستون اختصاص داده شده باشند.

به عنوان مثال، تصور کنید مهاجرتی دارید که ستونی votes با ویژگی های unsigned ، default و و ایجاد می کند comment :

Schema::create('users', function (Blueprint $table) {
$table->integer('votes')->unsigned()->default(1)->comment('The vote count');
});

بعداً، یک مهاجرت می نویسید که ستون را nullable نیز تغییر می دهد:

Schema::table('users', function (Blueprint $table) {
$table->integer('votes')->nullable()->change();
});

در لاراول 10، این مهاجرت ویژگی‌های unsigned ، default و و comment روی ستون را حفظ می‌کند. با این حال، در لاراول 11، اکنون مهاجرت باید شامل تمام ویژگی هایی باشد که قبلاً روی ستون تعریف شده بودند. در غیر این صورت حذف خواهند شد:

Schema::table('users', function (Blueprint $table) {
$table->integer('votes')
->unsigned()
->default(1)
->comment('The vote count')
->nullable()
->change();
});

این change روش شاخص های ستون را تغییر نمی دهد. بنابراین، می‌توانید از اصلاح‌کننده‌های شاخص برای افزودن یا رها کردن صریح یک نمایه هنگام تغییر ستون استفاده کنید:

// Add an index...
$table->bigIncrements('id')->primary()->change();
 
// Drop an index...
$table->char('postal_code', 10)->unique(false)->change();

اگر نمی‌خواهید همه مهاجرت‌های «تغییر» موجود در برنامه‌تان را برای حفظ ویژگی‌های موجود ستون به‌روزرسانی کنید، می‌توانید به سادگی مهاجرت‌های خود را له کنید :

php artisan schema:dump

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

انواع ممیز شناور

احتمال تاثیر: زیاد

انواع ستون double و float مهاجرت بازنویسی شده‌اند تا در همه پایگاه‌های داده سازگار باشند.

نوع double ستون اکنون یک DOUBLE ستون معادل بدون ارقام و مکان های کل (اعداد بعد از نقطه اعشار) ایجاد می کند که نحو استاندارد SQL است. بنابراین، می توانید آرگومان های $total و را حذف کنید $places :

$table->double('amount');

نوع float ستون اکنون یک FLOAT ستون معادل بدون ارقام و مکان های کل ایجاد می کند (اعداد بعد از نقطه اعشار)، اما با $precision مشخصات اختیاری برای تعیین اندازه ذخیره سازی به عنوان یک ستون تک دقیق 4 بایتی یا یک ستون با دقت دو بایتی 8 بایتی. بنابراین، می‌توانید آرگومان‌ها را حذف کنید $total و $places مقدار اختیاری را $precision به مقدار دلخواه خود و با توجه به مستندات پایگاه داده خود مشخص کنید:

$table->float('amount', precision: 53);

متدهای unsignedDecimal ، unsignedDouble و unsignedFloat حذف شده‌اند، زیرا اصلاح‌کننده بدون علامت برای این نوع ستون‌ها توسط MySQL منسوخ شده است و هرگز در سایر سیستم‌های پایگاه داده استاندارد نشده است. با این حال، اگر می‌خواهید به استفاده از ویژگی منسوخ بدون علامت برای این نوع ستون‌ها ادامه دهید، می‌توانید روش را unsigned به تعریف ستون زنجیره‌ای کنید:

$table->decimal('amount', total: 8, places: 2)->unsigned();
$table->double('amount')->unsigned();
$table->float('amount', precision: 53)->unsigned();

درایور اختصاصی MariaDB

احتمال تاثیر: بسیار کم

به جای استفاده از درایور MySQL هنگام اتصال به پایگاه داده MariaDB، Laravel 11 یک درایور پایگاه داده اختصاصی برای MariaDB اضافه می کند.

اگر برنامه شما به پایگاه داده MariaDB متصل می شود، می توانید پیکربندی اتصال را به mariadb درایور جدید به روز کنید تا در آینده از ویژگی های خاص MariaDB بهره مند شوید:

'driver' => 'mariadb',
'url' => env('DB_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
// ...

در حال حاضر، درایور جدید MariaDB مانند درایور MySQL فعلی با یک استثنا رفتار می کند: uuid روش سازنده طرحواره، به جای char(36) ستون، ستون های UUID بومی ایجاد می کند.

اگر مهاجرت‌های فعلی شما از uuid روش سازنده طرحواره استفاده می‌کنند و انتخاب می‌کنید که mariadb از درایور جدید پایگاه داده استفاده کنید، باید فراخوان‌های مهاجرت خود را از uuid روش به‌روزرسانی کنید تا char از ایجاد تغییرات یا رفتار غیرمنتظره جلوگیری کنید:

Schema::table('users', function (Blueprint $table) {
$table->char('uuid', 36);
 
// ...
});

انواع فضایی

احتمال تاثیر: کم

انواع ستون های فضایی مهاجرت های پایگاه داده بازنویسی شده اند تا در همه پایگاه های داده سازگار باشند. بنابراین، می توانید point , lineString , polygon , geometryCollection , multiPoint , multiLineString , multiPolygon و multiPolygonZ متدها را از مهاجرت خود حذف کنید و به جای آن استفاده geometry یا geography متدها را انجام دهید:

$table->geometry('shapes');
$table->geography('coordinates');

برای محدود کردن صریح نوع یا شناسه سیستم مرجع فضایی برای مقادیر ذخیره شده در ستون در MySQL، MariaDB، و PostgreSQL، می توانید روش subtype و srid را به روش ارسال کنید:

$table->geometry('dimension', subtype: 'polygon', srid: 0);
$table->geography('latitude', subtype: 'point', srid: 4326);

اصلاح کننده های ستونی isGeometry و projection گرامر PostgreSQL بر این اساس حذف شده اند.

دکترین حذف DBAL

احتمال تاثیر: کم

لیست زیر از کلاس ها و روش های مربوط به Doctrine DBAL حذف شده است. لاراول دیگر به این بسته وابسته نیست و ثبت انواع Doctrines سفارشی دیگر برای ایجاد و تغییر انواع ستون‌های مختلف که قبلاً به انواع سفارشی نیاز داشتند، ضروری نیست:

  • Illuminate\Database\Schema\Builder::$alwaysUsesNativeSchemaOperationsIfPossible دارایی کلاس
  • Illuminate\Database\Schema\Builder::useNativeSchemaOperationsIfPossible() روش
  • Illuminate\Database\Connection::usingNativeSchemaOperations() روش
  • Illuminate\Database\Connection::isDoctrineAvailable() روش
  • Illuminate\Database\Connection::getDoctrineConnection() روش
  • Illuminate\Database\Connection::getDoctrineSchemaManager() روش
  • Illuminate\Database\Connection::getDoctrineColumn() روش
  • Illuminate\Database\Connection::registerDoctrineType() روش
  • Illuminate\Database\DatabaseManager::registerDoctrineType() روش
  • Illuminate\Database\PDO فهرست راهنما
  • Illuminate\Database\DBAL\TimestampType کلاس
  • Illuminate\Database\Schema\Grammars\ChangeColumn کلاس
  • Illuminate\Database\Schema\Grammars\RenameColumn کلاس
  • Illuminate\Database\Schema\Grammars\Grammar::getDoctrineTableDiff() روش

علاوه بر این، دیگر نیازی به ثبت انواع Doctrine سفارشی از طریق فایل پیکربندی dbal.types برنامه شما database نیست.

اگر قبلاً از Doctrine DBAL برای بازرسی پایگاه داده و جداول مرتبط با آن استفاده می کردید، می توانید به جای آن از روش های طرحواره بومی جدید لاراول (،،،، و غیره) استفاده Schema::getTables() کنید . Schema::getColumns() Schema::getIndexes() Schema::getForeignKeys()

روش های طرحواره منسوخ شده

احتمال تاثیر: بسیار کم

متدهای منسوخ، مبتنی بر دکترین Schema::getAllTables() ، Schema::getAllViews() و Schema::getAllTypes() به نفع روش‌های بومی Schema::getTables() و جدید لاراول حذف شده‌اند Schema::getViews() . Schema::getTypes()

هنگام استفاده از PostgreSQL و SQL Server، هیچ یک از روش های طرحواره جدید مرجع سه بخشی را نمی پذیرد (به عنوان مثال database.schema.table ). بنابراین، به جای آن باید connection() برای اعلام پایگاه داده استفاده کنید:

Schema::connection('database')->hasTable('schema.table');

getColumnType() روش طرحواره ساز

احتمال تاثیر: بسیار کم

روش Schema::getColumnType() اکنون همیشه نوع واقعی ستون داده شده را برمی گرداند، نه نوع معادل Doctrine DBAL.

رابط اتصال پایگاه داده

احتمال تاثیر: بسیار کم

رابط روش Illuminate\Database\ConnectionInterface جدیدی دریافت کرده است scalar . اگر پیاده سازی خود را از این رابط تعریف می کنید، باید scalar روش را به پیاده سازی خود اضافه کنید:

public function scalar($query, $bindings = [], $useReadPdo = true);

تاریخ

کربن 3

احتمال تاثیر: متوسط

لاراول 11 از کربن 2 و کربن 3 پشتیبانی می کند. کربن یک کتابخانه دستکاری تاریخ است که به طور گسترده توسط لاراول و بسته هایی در سراسر اکوسیستم استفاده می شود. اگر Carbon 3 را نصب می‌کنید، باید گزارش تغییرات کربن را مرور کنید .

ایمیل

قرارداد Mailer

احتمال تاثیر: بسیار کم

قرارداد روش Illuminate\Contracts\Mail\Mailer جدیدی دریافت کرده است sendNow . اگر برنامه یا بسته شما به صورت دستی این قرارداد را پیاده سازی می کند، باید sendNow روش جدید را به پیاده سازی خود اضافه کنید:

public function sendNow($mailable, array $data = [], $callback = null);

بسته ها

انتشار ارائه دهندگان خدمات به برنامه

احتمال تاثیر: بسیار کم

اگر یک بسته لاراول نوشته اید که به صورت دستی یک ارائه دهنده خدمات را در app/Providers فهرست برنامه منتشر می کند و به صورت دستی فایل پیکربندی برنامه را config/app.php برای ثبت ارائه دهنده سرویس تغییر می دهد، باید بسته خود را برای استفاده از ServiceProvider::addProviderToBootstrapFile روش جدید به روز کنید.

این addProviderToBootstrapFile روش به‌طور خودکار ارائه‌دهنده سرویسی را که منتشر کرده‌اید به فایل برنامه اضافه می‌کند bootstrap/providers.php ، زیرا آرایه در فایل پیکربندی در برنامه‌های Laravel 11 جدید providers وجود ندارد . config/app.php

use Illuminate\Support\ServiceProvider;
 
ServiceProvider::addProviderToBootstrapFile(Provider::class);

صف ها

واسط BatchRepository

احتمال تاثیر: بسیار کم

رابط روش Illuminate\Bus\BatchRepository جدیدی دریافت کرده است rollBack . اگر این رابط را در بسته یا برنامه خود پیاده سازی می کنید، باید این روش را به پیاده سازی خود اضافه کنید:

public function rollBack();

مشاغل همزمان در معاملات پایگاه داده

احتمال تاثیر: بسیار کم

قبلاً، کارهای همزمان (کارهایی که از sync درایور صف استفاده می‌کردند) بلافاصله اجرا می‌شدند، صرف نظر از اینکه آیا گزینه پیکربندی اتصال صف روی کار after_commit تنظیم شده بود true یا روش فراخوانی شده بود. afterCommit

در لاراول 11، کارهای صف همزمان به پیکربندی «after commit» اتصال یا کار صف احترام می‌گذارند.

محدود کردن نرخ

محدودیت نرخ در هر ثانیه

احتمال تاثیر: متوسط

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

سازنده GlobalLimit کلاس اکنون به جای دقیقه، ثانیه ها را می پذیرد. این کلاس مستند نیست و معمولاً توسط برنامه شما استفاده نمی شود:

new GlobalLimit($attempts, 2 * 60);

سازنده Limit کلاس اکنون به جای دقیقه، ثانیه ها را می پذیرد. تمام کاربردهای مستند این کلاس به سازنده های ایستا مانند Limit::perMinute و محدود می شود Limit::perSecond . با این حال، اگر این کلاس را به صورت دستی نمونه‌سازی می‌کنید، باید برنامه خود را به‌روزرسانی کنید تا ثانیه‌هایی را در اختیار سازنده کلاس قرار دهید:

new Limit($key, $attempts, 2 * 60);

ویژگی کلاس به تغییر نام داده شده است و اکنون به جای دقیقه حاوی ثانیه است Limit . decayMinutes decaySeconds

سازندگان کلاس Illuminate\Queue\Middleware\ThrottlesExceptions و Illuminate\Queue\Middleware\ThrottlesExceptionsWithRedis اکنون به جای دقیقه، ثانیه ها را می پذیرند:

new ThrottlesExceptions($attempts, 2 * 60);
new ThrottlesExceptionsWithRedis($attempts, 2 * 60);

صندوقدار استریپ

به روز رسانی Cashier Stripe

احتمال تاثیر: زیاد

لاراول 11 دیگر از Cashier Stripe 14.x پشتیبانی نمی کند. بنابراین، باید وابستگی Laravel Cashier Stripe برنامه خود را ^15.0 در فایل خود به روز کنید composer.json .

Cashier Stripe 15.0 دیگر به طور خودکار مهاجرت ها را از فهرست مهاجرت خود بارگیری نمی کند. در عوض، باید دستور زیر را برای انتشار انتقال‌های Cashier Stripe به برنامه خود اجرا کنید:

php artisan vendor:publish --tag=cashier-migrations

لطفاً راهنمای ارتقاء Cashier Stripe را برای تغییرات بیشتر مرور کنید.

جرقه (راه راه)

به روز رسانی Spark Stripe

احتمال تاثیر: زیاد

لاراول 11 دیگر از Laravel Spark Stripe 4.x پشتیبانی نمی کند. بنابراین، شما باید وابستگی Laravel Spark Stripe برنامه خود را ^5.0 در فایل خود به روز کنید composer.json .

Spark Stripe 5.0 دیگر به طور خودکار مهاجرت ها را از فهرست مهاجرت خود بارگیری نمی کند. در عوض، باید دستور زیر را برای انتشار انتقال‌های Spark Stripe به برنامه خود اجرا کنید:

php artisan vendor:publish --tag=spark-migrations

لطفاً راهنمای کامل ارتقاء Spark Stripe را برای تغییرات اضافی مرور کنید.

گذرنامه

به روز رسانی پاسپورت

احتمال تاثیر: زیاد

Laravel 11 دیگر از Laravel Passport 11.x پشتیبانی نمی کند. بنابراین، شما باید وابستگی Laravel Passport برنامه خود را ^12.0 در فایل خود به روز کنید composer.json .

Passport 12.0 دیگر به طور خودکار مهاجرت ها را از فهرست مهاجرت خود بارگیری نمی کند. درعوض، باید دستور زیر را برای انتشار انتقال پاسپورت به برنامه خود اجرا کنید:

php artisan vendor:publish --tag=passport-migrations

علاوه بر این، نوع اعطای رمز عبور به طور پیش فرض غیرفعال است. می توانید آن را با فراخوانی enablePasswordGrant متد در boot متد برنامه خود فعال کنید AppServiceProvider :

public function boot(): void
{
Passport::enablePasswordGrant();
}

پناهگاه

به روز رسانی Sanctum

احتمال تاثیر: زیاد

لاراول 11 دیگر از Laravel Sanctum 3.x پشتیبانی نمی کند. بنابراین، شما باید وابستگی Laravel Sanctum برنامه خود را ^4.0 در فایل خود به روز کنید composer.json .

Sanctum 4.0 دیگر به طور خودکار مهاجرت ها را از دایرکتوری مهاجرت خود بارگیری نمی کند. در عوض، باید دستور زیر را برای انتشار مهاجرت های Sanctum به برنامه خود اجرا کنید:

php artisan vendor:publish --tag=sanctum-migrations

سپس، در فایل پیکربندی برنامه خود config/sanctum.php ، باید ارجاعات به authenticate_session , encrypt_cookies و validate_csrf_token میان افزار را به موارد زیر به روز کنید:

'middleware' => [
'authenticate_session' => Laravel\Sanctum\Http\Middleware\AuthenticateSession::class,
'encrypt_cookies' => Illuminate\Cookie\Middleware\EncryptCookies::class,
'validate_csrf_token' => Illuminate\Foundation\Http\Middleware\ValidateCsrfToken::class,
],

تلسکوپ

به روز رسانی تلسکوپ

احتمال تاثیر: زیاد

لاراول 11 دیگر از تلسکوپ لاراول 4.x پشتیبانی نمی کند. بنابراین، شما باید وابستگی تلسکوپ لاراول برنامه خود را ^5.0 در فایل خود به روز کنید composer.json .

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

php artisan vendor:publish --tag=telescope-migrations

بسته Spatie Once

احتمال تاثیر: متوسط

once اکنون لاراول 11 عملکرد خود را ارائه می دهد تا اطمینان حاصل کند که یک بسته معین فقط یک بار اجرا می شود. بنابراین، اگر برنامه شما وابستگی به spatie/once بسته دارد، باید آن را از فایل برنامه خود حذف کنید composer.json تا درگیری نداشته باشید.

متفرقه

ما همچنین شما را تشویق می کنیم که تغییرات موجود در laravel/laravel مخزن GitHub را مشاهده کنید . در حالی که بسیاری از این تغییرات مورد نیاز نیستند، ممکن است بخواهید این فایل ها را با برنامه خود هماهنگ نگه دارید. برخی از این تغییرات در این راهنمای ارتقا پوشش داده خواهد شد، اما برخی دیگر، مانند تغییرات در فایل‌های پیکربندی یا نظرات، چنین نیستند. می توانید به راحتی تغییرات را با ابزار مقایسه GitHub مشاهده کنید و انتخاب کنید کدام به روز رسانی برای شما مهم است.