17 августа 2021 года у CMS Joomla день рождения. В этот же день вышла версия Joomla 4.0. В честь праздника опубликовал на Хабре краткий обзор нововведений Joomla 4.0, дублирую себе.
Итак, в свой 16-й день рождения вышла CMS Joomla 4.0. Это действительно долгожданное событие, так как с момента предыдущей мажорной версии прошло 9 лет.
Новое в Joomla 4.0
Краткий список нововведений в Joomla 4.0.
Измененный и упрощенный процесс установки
В целом процесс установки проходит в 3 экрана. При желании, в процессе установки можно установить дополнительные языки для бэкенда и фронтенда.
Новый шаблон панели администратора и фронтенда
Админка Joomla 4 на css-фреймворке Bootstrap 5. Произошёл отказ от javascript-библиотеки jQuery. Разработчикам необходимо учитывать этот момент при адаптации своих расширений для Joomla 4. Однако, в поставке J4 присутствует jQuery 3.6, который при необходимости можно использовать.
Web для всех
Стандартные шаблоны админки и фронтенда соответствуют требованиям для слабовидящих (Level AA of WCAG 2.1).
Российским аналогом WCAG является ГОСТ Р 52872-2019 "ИНТЕРНЕТ-РЕСУРСЫ И ДРУГАЯ ИНФОРМАЦИЯ, ПРЕДСТАВЛЕННАЯ В ЭЛЕКТРОННО-ЦИФРОВОЙ ФОРМЕ. ПРИЛОЖЕНИЯ ДЛЯ СТАЦИОНАРНЫХ И МОБИЛЬНЫХ УСТРОЙСТВ, ИНЫЕ ПОЛЬЗОВАТЕЛЬСКИЕ ИНТЕРФЕЙСЫ. Требования доступности для людей с инвалидностью и других лиц с ограничениями жизнедеятельности", в котором использованы аналогичные уровни доступности.
Новый медиа-менеджер
Раньше доброй традицией было сразу после установки Joomla ставить редактор JCE, так как к нему в комплекте шёл нормальный файловый менеджер. Joomla 4 имеет полностью переработанный медиа-менеджер. Теперь из коробки Вы имеете поддержку webp и встроенный простой редактор изображений.
Новая сущность - Процессы (Workflow)
Любой контент проходит несколько этапов создания. Настроить эти этапы под себя можно с помощью Процессов в Joomla 4.
Web Services (REST API Joomla 4)
В "коробке" Joomla 4 появился долгожданный REST API, который позволяет получать информацию с сайта как другим сайтам, так и мобильным приложениям. Раньше для этого необходимо было устанавливать сторонние расширения.
Пример работы с REST API Joomla 4
Улучшения безопасности
Повышена безопасность Joomla 4 в целом, так как переработан механизм запросов в базу данных. Теперь "под капотом" используются prepared SQL statements.
Стандартная шаблонизация HTML-писем Joomla 4
Для каждого компонента возможно создавать HTML-шаблоны писем уведомлений. Компонент предоставляет переменные, значения которых будут подставляться в шаблон письма. По умолчанию в настройках шаблонов писем включен тип письма "текст без HTML", чтобы появился HTML-каркас письма включаем этот тип в настройках. Обратите внимание на то, что шаблоны писем можно создавать для каждого установленного языка: для русского языка - свой шаблон (логотип, телефоны и т.д.), для украинского - свой, английского - третий и т.д.
Улучшенный и расширенный Command Line Interface (CLI)
CLI требуется, как правило, для ресурсоёмких процессов (обработка больших объёмов информации, синхронизация данных со сторонними сервисами и т.д.), которые не должны нагружать основной web-сервер. Эти процессы обычно "вешаются" на CRON и их работа не мешает пользователям сайта.
Улучшенная кодовая база Joomla 4
Удалены функции и классы, имевшие статус deprecated в Joomla 3. Ядро Joomla 4 пересобрано с использованием namespaces. К использовавшимся ранее в Joomla 3 PSR стандартам добавлены PSR7, PSR17 и PSR18. Напомним так же, что проект Joomla является проектом-участником PHP FIG, отвечающим за разработку и реализацию этих стандартов.
До сей поры существовали 2 параллельных проекта: Joomla Framework (php-фреймворк, а-ля Yii, Laravel etc) и Joomla CMS, которая является почти тем же фреймворком. но с предустановленными компонентами/модулями/плагинами/шаблонами, нужными в большей степени для демонстрации подходов к разработке и некоторыми отличиями в коде и подходах. В Joomla 4 интегрирована кодовая база Joomla Framework.
Усовершенствована система диспетчеризации событий - для разработки плагинов. Что такое плагин в Joomla?
А также:
-
Новый Renderer, обеспечивающий поддержку шаблонов рендеринга со многими популярными библиотеками PHP (включая Twig, Mustache и Blade)
-
Новый пакет Console для создания CLI-приложений
-
Новый Preload пакет для управления HTTP/2 ресурсами.
-
Поддержка шифрования OpenSSL в пакете Crypt
-
Переработанный пакет Keychain для использования пакета Crypt
-
Переработанный роутер (Router)
-
Переработанный пакет для работы с сессиями (Session)
Официальные рекомендации по настройке окружения для разработчиков Joomla.
Официальный список потерей обратной совместимости Joomla 4.
Миграция с Joomla 3.10 на Joomla 4.0
Напоминаем, что переход с Joomla 3.x на Joomla 4.x является миграцией. Joomla 3.10.0 называют "мостом" между линейкой 3.x и 4.x. Перед миграцией необходимо убедиться, что все используемые расширения имеют поддержку Joomla 4, а Ваш хостинг отвечает минимальным техническим требованиям.
В Joomla 3.10 в компоненте "Обновления Joomla" находится кнопка "проверить обновления". После нажатия запускается Pre-update Check - проверка на совместимость текущего окружения и расширений с Joomla 4.
После проверки отображается информация о совместимости.
Перед обновлением на Joomla 4 убедитесь в том, что Вы действительно используете все установленные компоненты, плагины, модули, языки и шаблоны. А так же что все используемые совместимы с Joomla 4.
Для миграции в настройках компонента "Обновление Joomla" переключите сервер обновлений на "Joomla Next".
Минимальные технические требования для Joomla 4
Software | Recommended | Minimum |
---|---|---|
PHP |
8.0 |
7.2.5 |
Supported Databases | ||
MySQL |
5.6 + |
5.6 |
PostgreSQL |
11.0 + |
11.0 |
Supported Web Servers | ||
Apache |
2.4 + |
2.4 |
Nginx |
1.18 + |
1.10 |
Microsoft IIS |
10 + |
8 |
Дистрибутивы
Использование Joomla 4.0 на боевых проектах
Говорить об использовании Joomla 4 на боевых проектах можно с некоторой осторожностью, до тех пор, пока разработчики сторонних расширений не обновят до версий, совместимых с "четвёркой". Однако, многие студии заблаговременно начали работу по обеспечению совместимости своих продуктов. В Joomla Extensions Directory расширения с поддержкой J4 имеют специальную метку.
Тем не менее, это большое событие наконец-то произошло, с чем и поздравляем Joomla-сообщество!