Pokedex: Обновление Laravel с версии 8.x до 9.x

Год назад я делал несколько публикаций, которые касались Laravel, в этих публикациях мы построили «Покедекс» с 0.

С этими публикациями можно ознакомиться по следующей ссылке:

Pokedex с помощью Laravel

Теперь, когда этот период времени прошел, я предложил обновить проект, который имел версию Laravel 8.x, по этой причине основным требованием будет обновление до последней версии.
Аналогичным образом, мы обновим PHP до версии 8.1.

На момент написания этой статьи самая актуальная версия Laravel — 9.27, а минимальная версия PHP — 8.0.

Пререквизиты

Чтобы выполнить это обновление, у вас должно быть установлено следующее:

  • PHP 8.1
  • Ubuntu 20.04 или WSL2 в Windows
  • Композитор
  • Git

Первые шаги

Прежде чем продолжить, я рекомендую вам следовать руководству по установке, которое есть у Laravel, когда они выпускают версии, в данном случае это был переход с 8 на 9, я оставляю вам ссылку:

Руководство по обновлению Laravel с 8.x до 9.x

Если в настоящее время вы не используете так много пакетов, в этом руководстве вы просто дойдете до шага «Upgrade Dependencies», в противном случае я рекомендую провести тщательный аудит используемых вами пакетов и проверить репозитории этих пакетов на предмет наличия в них версий для Laravel 9 в данном случае.

Установка

Следуя этим рекомендациям, «Pokedex» не использует внешние пакеты, это простой проект, который дает нам введение в Laravel, поэтому мы приступаем к коду, и первое, что мы сделаем, это модификация файла «composer.json».

Мы заменим его следующим в разделе «require» файла:

"require": {
        "php": "^8.0||^8.1",
        "fruitcake/laravel-cors": "^v2.0.5",
        "guzzlehttp/guzzle": "^7.5.0",
        "laravel/framework": "^v9.27.0",
        "laravel/tinker": "^v2.7.2",
        "laravel/ui": "^3.3"
    },

Войдите в полноэкранный режим Выход из полноэкранного режима

Если мы обратим внимание на разницу, мы только обновили версии и удалили пакет под названием «fideloper/proxy», позже мы узнаем, почему мы удалили эту библиотеку.

Теперь мы изменим раздел require-dev:

"require-dev": {
        "spatie/laravel-ignition": "^1.4.0",
        "fakerphp/faker": "^1.9.1",
        "laravel/sail": "^1.0.1",
        "mockery/mockery": "^1.4.4",
        "nunomaduro/collision": "^v6.2.1",
        "phpunit/phpunit": "^9.5.24"
    },

Войдите в полноэкранный режим Выход из полноэкранного режима

В этой части мы обновляем версии и заменяем пакет «facade/ignition» на «spatie/laravel-ignition».

После изменения файла «composer.json» мы удаляем файл «composer.lock», так как он связан с версией 8 и может вызвать ошибки при установке, если мы оставим его в таком виде.

После удаления файла «composer.lock» мы выполняем следующую команду:

composer install
Войдите в полноэкранный режим Выход из полноэкранного режима

Установите зависимости Javascript:

npm install
Войдите в полноэкранный режим Выход из полноэкранного режима

Скопируйте файл конфигурации Laravel:

cp .env.example .env
Войдите в полноэкранный режим Выход из полноэкранного режима

Проверьте, что конфигурация работает:

php artisan key:generate
Войдите в полноэкранный режим Выход из полноэкранного режима

Тест браузера установки

Хотя команда «artisan» в некоторой степени полезна после настройки версии Laravel, нам придется проверить, что все наши Pokedex работают без ошибок в браузере.

Для этого мы будем использовать «Laravel Sail», конфигурацию как таковую я здесь упоминать не буду, так как ранее в публикациях «Pokedex» было показано, как ее настроить; мы настроим только сервис MariaDb.

Покедекс с публикацией «Парус» можно найти здесь:

Проект Pokedex — развертывание нашей среды разработки с помощью Laravel Sail(2).

После настройки мы подтягиваем службы Sail:

sail up -d
Войдите в полноэкранный режим Выход из полноэкранного режима

В данном случае мы использовали псевдоним для выполнения команды Sail, помня, что она находится в vendor/bin.

Мы проверяем правильность работы служб:

sail ps
Войдите в полноэкранный режим Выход из полноэкранного режима

После того, как службы запущены, открываем браузер и вводим localhost, указанный предыдущей командой, и получаем ошибку:

В версии 9 они перестали использовать «fideloper/proxy» и использовали библиотеку, которая уже входит в ядро Laravel, которая находится в «Illuminate/Http/Middleware/TrustProxies».

Итак, чтобы остановить эту ошибку, мы изменим файл TrustProxies.php, который находится в папке Middleware, следующим образом:

<?php

namespace AppHttpMiddleware;

use IlluminateHttpMiddlewareTrustProxies as Middleware;

Войдите в полноэкранный режим Выход из полноэкранного режима

После внесения этих изменений мы снова протестируем в браузере и получим «Покедекс» с последней версией Laravel:

Изменения, которые были сделаны в этом выпуске, вы можете найти в следующем PR:

https://github.com/krsrk/pokedex-laravel/pull/3

Оцените статью
devanswers.ru
Добавить комментарий