Как обновить October CMS до Laravel 6?

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Продолжаем рассматривать October CMS, вокруг которой мы в LOVATA построили разработку веб-проектов и в особенности интернет-магазинов. Сегодня мы подготовили для вас инструкцию по обновлению вашей текущей установки October до долгожданной версии 1.1.x с Laravel 6 “под капотом”.

Прошло больше года с момента выхода шестой версии фреймворка Laravel. А некоторое время назад и October CMS, для которой мы разработали e-commerce-платформу Shopaholic, выпустила долгожданный релиз под номером 1.1.0 с поддержкой Laravel 6. Как вы, возможно, заметили, принцип нумерации версий тоже изменился, он стал лучше отражать текущее положение вещей.

Предвосхищая возможные комментарии по поводу актуальной мажорной версии Laravel, поясняю, что до сих пор October CMS базировался исключительно на LTS-релизах. Это кажется разумным выбором в свете того факта, что ранее имели место случаи сломанной обратной совместимости даже при повышении очередной минорной версии фреймворка.

Переход на Laravel 6

Общие сведения

Ядро October претерпело много серьёзных изменений, что и стало причиной достаточно длительного ожидания. При этом релиз Laravel 6 отмечен как LTS (Long Term Support), что означает увеличенный жизненный цикл и длительное сохранение актуальности.

Изменились некоторые из системных требований:

  • минимально PHP 7.2, рекомендуется PHP 7.4 (версии, начиная с 7.0, также будут работать, но не смогут обновляться);

  • минимально SQLite 3.7.11, рекомендуется 3.8.8+.

Версия 1.1.0 была доступна в качестве тестового обновления с 16 августа, а релиз стабильной версии состоялся 7-го сентября.

Установка “с нуля”

Для того, чтобы установить “чистый” October версии 1.1.x воспользуйтесь установкой с помощью Composer:

  1. Выполнить команду composer create-project october/october ..

  2. Открыть файл config/cms.phpи активировать настройку disableCoreUpdates, которая отключит обновления ядра CMS через шлюз October: 'disableCoreUpdates' => true,.

  3. Завершить установку с помощью терминала, выполнив команду php artisan october:install.

Корректно установленный October версии 1.1.x в настройках админки не будет отображать свой номер.

Если после установки вы попытаетесь обновить ядро из админки не включив настройку disableCoreUpdates, то на неопределённый срок получите следующую картину.

Обновление

Для того, чтобы обновить существующую установку October до ветки 1.1.x она должна быть изначально установленной с помощью Composer. Если это не так, то наиболее беспроблемное обновление будет выглядеть следующим образом (при наличии October уже установленной с помощью Composer сразу переходите к шагу 6):

  1. Установить в отдельную директорию October CMS версии 1.469 с помощью команды composer create-project october/october . "1.0.469".

  2. Открыть файл config/cms.phpи активировать настройку disableCoreUpdates, которая отключит обновления ядра CMS через шлюз October: 'disableCoreUpdates' => true,.

  3. Скопировать папки pluginsи themesв эту директорию.

  4. Применить миграции с помощью команды php artisan october:up.

  5. Разрешить возникшие конфликты.

  6. Поднять версии зависимостей в composer.json:*

  7. "repositories": [
        {
          "type":"vcs",
          "url":"https://github.com/octoberrain/composer-merge-plugin"
        }
    ],
    "require": {
        "php": "^7.2",
        "october/rain": "~1.1",
        "october/system": "~1.1",
        "october/backend": "~1.1",
        "october/cms": "~1.1",
        "laravel/framework": "~6.0",
        "wikimedia/composer-merge-plugin": "dev-feature/composer-v2 as 1.5.0"
    },
    "config": {
        "preferred-install": "dist",
        "platform": {
            "php": "7.2.9"
        }
    },
    
  8. Если вы начинали с шага 6, следует убедиться, что шаг 2 выполнен.

  9. Обновить зависимости с помощью команды composer update.

  10. Применить миграции с помощью команды php artisan october:up.

*Обратите внимание на нестандартный wikimedia/composer-merge-plugin, это форк Люка Тауэрса (одного из основных разработчиков ядра October) для обеспечения совместимости с Composer v2.

Поздравляем, теперь вам доступны самые последние возможности платформы October CMS!

Затронутая функциональность

Как мы уже отмечали, переход на Laravel 6 глубоко затронул функциональность October CMS. Поэтому, некоторые части вашего кода также могут потребовать изменений:

  • Configuration files (/config/*.php)

  • Environment variables (.env files)

  • Server configuration (.htaccess files)

  • Any packages made for Laravel

  • Laravel package auto-discovery

  • Interacting with Cache repositories

  • String-based primary keys in models

  • Use of $guarded in models

  • Wildcard event listeners

  • Catch-all routing

  • Using Carbon directly

  • Using Jenssegers\Date directly

  • Using Symfony directly

  • Using League\Csv directly

  • Unit Testing

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

Новая система версионирования

Помимо поддержки Laravel 6, October перешла на новую, более подходящую для текущих реалий разработки этой  CMS. Основное изменение — теперь в номер версии будет включён номер минорного релиза.

October CMS по-прежнему в «вечнозеленой» стадии, где версии различаются лишь номерами сборок. Это является результатом соглашения команды разработчиков, принятого с самого первого дня работы над проектом.

Предыдущая LTS-версия Laravel имела достаточно долгий срок жизни. На данный момент её использует множество сайтов. Поэтому необходим способ и далее предоставлять обновления безопасности для этих веб-сайтов, особенно если они не могут обновиться до последней версии CMS или PHP.

В итоге October CMS перешла к новой схеме управления версиями. В которой мажорный номер (v1) останется равным 1, чтобы отразить приверженность стабильности обновлений. Минорный номер (v1.x) теперь будет увеличиваться при выпуске обновлений, которые могут повлиять на зависимости (например, обновления фреймворка Laravel). Номер патча (v1.0.x) будет по-прежнему отражать текущие обновления или сборки, но будет сбрасываться каждый раз при изменении дополнительной версии. 

Теперь будет три основных типа релизов этой CMS:

  • Develop — версия, находящаяся в активной разработке;

  • 1.0 — стабильный билд на базе Laravel 5.5 (ранее эта была ветка master);

  • 1.1 —  стабильный билд на базе Laravel 6.

Напоминаем, October CMS все ещё находится в «вечнозеленой» стадии. Поэтому даже после выхода минорного обновления все предыдущие версии лишаются обновлений, за исключением патчей критических уязвимостей безопасности. Так что мы рекомендуем всегда поддерживать вашу October CMS в наиболее актуальном состоянии.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Как вы относитесь к политике использования LTS-релизов для ядра October CMS?

  • 0,0%Поддерживаю, стабильность превыше всего0
  • 0,0%Поддерживаю, но хотелось бы более быстрого процесса повышения версии Laravel0
  • 100,0%Не поддерживаю, новые фичи важнее1
  • 0,0%Меня устраивает любой вараинт0
Источник: https://habr.com/ru/post/531936/


Интересные статьи

Интересные статьи

Сегодня вышла Windows 10 October 2020 Update (20H2). Финальным билдом стал 19042.572. Это обновление ориентировано на исправление ошибок и увеличение производительности, ...
Устраивать конкурсы в инстаграме сейчас модно. И удобно. Инстаграм предоставляет достаточно обширный API, который позволяет делать практически всё, что может сделать обычный пользователь ручками.
Привет, Хабр! Представляю вашему вниманию подборку, которая является переводом оригинальной статьи с моего блога. Если есть идеи что добавить в подборку — буду рад пообщаться в комментах. Насл...
Компании растут и меняются. Если для небольшого бизнеса легко прогнозировать последствия любых изменений, то у крупного для такого предвидения — необходимо изучение деталей.
От скорости сайта зависит многое: количество отказов, брошенных корзин. Согласно исследованию Google, большинство посетителей не ждёт загрузки больше 3 секунд и уходит к конкурентам. Бывает, что сайт ...