آپگرید به لاراول 8 از لاراول 7
آموزش لاراول (Laravel) زمان مطالعه: 4 دقیقه تاریخ انتشار: 1 سال قبل

آپگرید به لاراول 8 از لاراول 7

لاراول 8 به تازگی منتشر شده است و مثل همیشه امکانات جدید و جذابی به آن اضافه شده است که ما در یک مقاله مجزا به بررسی لاراول 8 پرداختیم و در این مقاله قصد داریم روش آپگرید و آپدیت به لاراول 8 از لاراول 7 را بررسی کنیم. اگر قصد دارید پروژه لاراولی خود را به نسخه 8 لاراول آپدیت کنید ادامه این مقاله از سایت هیرود را از دست ندهید.

 

آپگرید لاراول

قبل از هرچیزی باید بدانید تنها می توانید لاراول نسخه 7 را به لاراول 8 آپگرید کنید! این بدنی معناست اگر شما از لاراول 6 یا نسخه های قبل تر استفاده می کنید باید عملیات آپگرید را گام به گام انجام دهید. فرض کنید ما از نسخه 5.8 لاراول استفاده می کنیم برای آپگرید به نسخه 8 لاراول ابتدا باید آن را به لاراول نسخه 6 سپس به لاراول 7 و در نهایت به لاراول 8 آپگرید کنیم و امکان آپگرید مستقیم از لاراول 5.8 به لاراول 8 وجود ندارد. در ادامه آموزش ما فرض می کنیم نسخه لاراول فعلی شما 7 است.

آپگرید به لاراول 8

توجه: لاراول 8 از این پس نیازمند نصب بودن PHP حداقل 7.3 (PHP >= 7.3) در سرور است.

برای آپگرید به لاراول 7 از لاراول 7 باید تغییراتی را در پروژه خود ایجاد کنید که این تغییر برحسب اهمیت به دو دسته تقسیم (تغییرات با اهمیت بالا . متوسط) تقسیم می شوند.

 

آپدیت وابستگی های پروژه به لاراول 8 (اهمیت بالا)

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

  • guzzlehttp/guzzle to ^7.0.1
  • facade/ignition to ^2.3.6
  • laravel/framework to ^8.0
  • laravel/ui to ^3.0
  • nunomaduro/collision to ^5.0
  • phpunit/phpunit to ^9.0

 

Model Factories در لاراول 8 (اهمیت بالا)

ویژگی model factories در لاراول 8 به طور کلی برای پشتیبانی از کلاس ها بازنویسی شده است که با روش به کار رفته در لاراول 7 سازگار نیست! اگر شما می خواهید روند factory های خود در لاراول 7 را تغییر ندهید میتوانید از پکیج laravel/legacy-factories که برای شما در نظر گرفته شده است استفاده کنید. می توانید با دستور زیر آن را نصب کنید.

composer require laravel/legacy-factories

اما اگر میخواهید از factory ها, Seeder ها به روش لاراول 8 استفاده کنید باید کلاس های Seeder خود را به صورت زیر ایجاد کنید.


namespace Database\Seeders;

use App\Models\User;
use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        ...
    }
}

سپس باید در فایل composer.json fg بلاک classmap را پاک کرده و بلاک autoload را به صورت زیر قرار دهید:

"autoload": {
    "psr-4": {
        "App\\": "app/",
        "Database\\Factories\\": "database/factories/",
        "Database\\Seeders\\": "database/seeders/"
    }
},

 

پاک شدن فلگ --message از دستور down (اهمیت متوسط)

تنظیم --message از دستور php artisan down پاک شده است و دیگر قابل استفاده نیست. از این پس شما می توانید از حالتPre-Rendering The Maintenace Mode View استفاده کنید.

 

صفحه بندی در لاراول 8 (اهمیت بالا)

از این پس لاراول Paginator از فریمورک Tailwind CSS به صورت پیش فرض برای استایل دهی به لینک های صفحه بندی استفاده می کند. اگر همچنان قصد دارید از Bootstrap به صورت پیش فرض برای صفحه بندی استفاده کنید باید تکه کد زیر را به مد Boot فایل AppServiceProvider اضافه کنید.

use Illuminate\Pagination\Paginator;

Paginator::useBootstrap();

 

تغییرات Queue در لاراول 8 (اهمیت بالا)

 retryAfterتغییر نام 

برای سازگاری با سایر ویژگی های لاراول متد retryAfter و ویژگی retryAfter در صف ها، notifications ، mailers و listeners ها به backoff تغییر نام داده شده است. اگر در کلاس های خود از آن استفاده کردید باید نام آن را به backoff تغییر دهید.

تغییر نام timeoutAt

همچنین ویژگی timeoutAt هم به retryUntil تغییر نام داده شده است.

پاک شدن متد های allOnQueue and allOnConnection

شما باید جای آنها از متدهای onQueue and onConnection استفاده کنید مانند مثال زیر:

ProcessPodcast::withChain([
    new OptimizePodcast,
    new ReleasePodcast
])->onConnection('redis')->onQueue('podcasts')->dispatch();

 

تغییر در Testing لاراول 8 (اهمیت متوسط)

اکنون متد assertExactJson به کلیدهای عددی آرایه جهت مقایسه نیاز دارد. اما اگر شما همچنان می خواهید عمل مقایسه را بدون کلیدهای عددی آرایه ها انجام دهید باید از متد assertSimilarJson استفاده کنید.

 

در این مقاله موارد مهمی که برای آپگرید به لاراول 8 نیاز داشت را بررسی کردیم امیدواریم برایتان مفید بوده باشد. پیشنهاد می کنیم سایر مقالات آموزش برنامه نویسی هیرود را از دست ندهید

امتیاز به این مقاله فراموش نشه
میانگین امتیاز 5 از 5 ، کل امتیازات: 2
امیر اشرفی
نویسنده: امیر اشرفی

امیر اشرفی هستم مدیر و بنیان گذار آکادمی هیرود، حدود 10 سالی میشه که در حوزه برنامه نویسی و توسعه وب و موبایل فعالیت میکنم و تونستم تجربه خوبی در این حوزه بدست بیارم. یکی از علاقه هام انتقال تجربه هایی که در اختیار دارم به دیگرانه و باعث میشه حالم خوب بشه و اشتیاق یادگیریم افزایش پیداکنه، در واقع هیرود نتیجه حال خوبیامه :)

دوره های قهرمانی پیشنهادی

اولین قدم برنامه نویسی

اولین قدم برنامه نویسی

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

سبد خرید

سبد خرید شما خالی است.

پیش به سوی قهرمانی