Обновление Laravel 5.4 до последней версии (5.7)

Я работаю над Laravel 5.4 с версией PHP 5.6.4. Моя цель - обновить свой проект до Laravel 5.7 с PHP 7.1.

Теперь мой вопрос: нужно ли мне переходить на 5.5> 5.6> 5.7 или я могу сразу перейти с 5.4 на 5.7?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
10
0
27 327
8

Ответы 8

Есть несколько статей по документации. Вы можете выполнить обновление до 5.7 напрямую, но обязательно измените критические разделы по этим ссылкам 5,5 -> 5,6, 5,6 -> 5,7. И сначала сделайте резервную копию текущего проекта

Нет, не стоит обновляться поэтапно, только вы можете сделать это: https://laravel.com/docs/5.7/upgrade

Честно говоря, я не понимаю документацию по обновлению. Нужно ли мне изменить версию в моем файле composer.json и выполнить обновление композитора? Мне нужно изменить исходный код фреймворка Laravel? Или это просто пояснительная информация на странице документации по обновлению?

Michael 17.10.2018 09:41

Ничего страшного. вам нужно перейти в «composer.json» и отредактировать «laravel / framework»: «5.4. *» на «laravel / framework»: «5.7. *» для обновления laravel. перед этим проверьте в командной строке свою версию php. другая задача есть шаг за шагом на странице документа. если у вас есть другие вопросы, вы можете написать мне по электронной почте, я помогу вам

Hamid Naghipour 17.10.2018 09:45

Не могли бы вы объяснить дальше, почему не следует обновляться поэтапно? ИМХО, помогло бы устранить возможные ошибки

Nico Haase 17.10.2018 10:51

@HamidNaghipour Пожалуйста, запустите все коммуникации здесь, чтобы другие могли им воспользоваться. Если у вас есть еще вопросы, не стесняйтесь открывать новый вопрос

Nico Haase 17.10.2018 12:45

@NicoHaase Речь идет о совместной удаленной работе, а не о вопросах. хорошо, я удаляю свои комментарии.

Hamid Naghipour 17.10.2018 13:21

Лучше сначала обновить 5.5, а затем перейти на 5.6 и 5.7, потому что, если вы видите в руководстве по обновлению 5.5 и 5.6, некоторые пакеты также необходимо обновить, поэтому вам лучше идти пошагово.

Для более старых версий вы можете посмотреть

Просто обновите свою зависимость laravel/framework до 5.7.* в вашем файле composer.json:

"require": {
    "php": "^7.1.3",
    "fideloper/proxy": "^4.0",
    "laravel/framework": "5.7.*",
    "laravel/tinker": "^1.0"
},

После этого запустите эту команду в командной строке: composer update

Вы добьетесь успеха, и ваша личинка изменится на версия 5.7, более подробная информация доступна на руководство по обновлению

Если я это сделаю, то получу ошибку Your requirements could not be resolved to an installable set of packages. У меня PHP 7.1.20

Michael 17.10.2018 09:58

@Michael Поделитесь, пожалуйста, кодом вашего файла composer.json

Udhav Sarvaiya 17.10.2018 10:10

.... и поделитесь точным журналом ошибок. Скорее всего, он расскажет вам о конфликтующих пакетах.

Nico Haase 17.10.2018 10:50

С моей точки зрения, пошаговое обновление помогло бы. Это помогает увидеть, совместимо ли уже ваше приложение со всеми изменениями, которые необходимо внести.

Если вы обновляетесь до 5.7 напрямую и сталкиваетесь с более серьезными проблемами из-за изменений, самый быстрый вариант - снова перейти на версию 5.4.

Если вы обновитесь до 5.5 на первом этапе, вы можете сделать свое приложение совместимым с 5.5, тщательно протестировать его, развернуть и начать тестирование, что нужно сделать для обновления до 5.6.

Просто обновите зависимость laravel / framework до 5.7. * В файле composer.json. Поскольку вы обновляетесь с 5.4 до 5.7, вы можете легко запустить

composer update

И если вы изменили некоторые черты или методы Laravel в своем приложении 5.4, вы можете проверьте здесь для получения дополнительной информации

Вы можете просто обновить зависимость laravel / framework до 5.7. * В файле composer.json.

1. изменение в composer.json:

Из:

"require": {
        "php": ">=7.0.0",
        "fideloper/proxy": "~3.3",
        "laravel/framework": "5.4.*",
        "laravel/tinker": "~1.0"
    },

К:

"require": {
        "php": ">=7.1.3",
        "fideloper/proxy": "~4.0",
        "laravel/framework": "5.6.*",
        "laravel/tinker": "~1.0"
    },

2. Замените файл app \ Http \ Middleware \ TrustedProxies.php содержимым ниже:

<?php

namespace App\Http\Middleware;

use Illuminate\Http\Request;
use Fideloper\Proxy\TrustProxies as Middleware;

class TrustProxies extends Middleware
{
    /**
     * The trusted proxies for this application.
     *
     * @var array
     */
    protected $proxies;

    /**
     * The headers that should be used to detect proxies.
     *
     * @var string
     */
    protected $headers = Request::HEADER_X_FORWARDED_ALL;
}

3. обновление композитора

composer update

Можете ли вы объяснить, почему нужно заменить какой-то произвольный файл?

Nico Haase 17.10.2018 13:13

В этом руководстве по обновлению TrustProxies вообще не упоминается. Итак, вы можете это объяснить?

Nico Haase 17.10.2018 13:45

Из-за основных изменений в функциональности доверенного прокси-сервера Symfony HttpFoundation необходимо внести небольшие изменения в промежуточное ПО App \ Http \ Middleware \ TrustProxies вашего приложения. Свойство $ headers, которое раньше было массивом, теперь является битовым свойством, которое принимает несколько разных значений. Например, чтобы доверять всем перенаправленным заголовкам, вы можете обновить свойство $ headers.

Madhuri Patel 17.10.2018 13:52

Пожалуйста, добавляйте такую ​​информацию в ответ, а не в раздел комментариев. И если вы копируете и вставляете информацию, пожалуйста, укажите источник - laravel.com/docs/5.6/upgrade содержит ваш последний комментарий слово за словом

Nico Haase 17.10.2018 14:27

да, спасибо .. если у вас есть ссылка, по которой вы получили информацию, тогда почему вы спросили меня, мама?

Madhuri Patel 17.10.2018 14:52

Для обновления Laravel 6.x (что означает любые подверсии к V6)
Просто запустите эту команду

cd [laravel installation directory]
composer update

У вас должен быть установлен композитор на вашей виртуальной машине или ПК.

Только для пользователей Linux:

Каталог Composer должен принадлежать текущему пользователю

//Check ownership
ls -la ~/ | grep ".composer"

//If you don't own the directory
chown -R [user]/[user] ~/.composer

Напишите мне в любой социальной сети @smitpatelx Или оставьте комментарий, если вам нужна помощь или если ваш вариант использования отличается от приведенного выше.

Другие вопросы по теме