Итак, в свой 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, который при необходимости можно использовать.
![Скриншот панели администратора Joomla 4.0 Скриншот панели администратора Joomla 4.0](https://habrastorage.org/getpro/habr/upload_files/7b7/61e/5f0/7b761e5f00189ac42636e1f859d61e81.png)
![Скриншот стандартного шаблона для фронтенда Joomla 4. Скриншот стандартного шаблона для фронтенда Joomla 4.](https://habrastorage.org/getpro/habr/upload_files/9af/764/67e/9af76467ea487d25ee153270fd23b81a.png)
Web для всех
Стандартные шаблоны админки и фронтенда соответствуют требованиям для слабовидящих (Level AA of WCAG 2.1).
Российским аналогом WCAG является ГОСТ Р 52872-2019 "ИНТЕРНЕТ-РЕСУРСЫ И ДРУГАЯ ИНФОРМАЦИЯ, ПРЕДСТАВЛЕННАЯ В ЭЛЕКТРОННО-ЦИФРОВОЙ ФОРМЕ. ПРИЛОЖЕНИЯ ДЛЯ СТАЦИОНАРНЫХ И МОБИЛЬНЫХ УСТРОЙСТВ, ИНЫЕ ПОЛЬЗОВАТЕЛЬСКИЕ ИНТЕРФЕЙСЫ. Требования доступности для людей с инвалидностью и других лиц с ограничениями жизнедеятельности", в котором использованы аналогичные уровни доступности.
Новый медиа-менеджер
Раньше доброй традицией было сразу после установки Joomla ставить редактор JCE, так как к нему в комплекте шёл нормальный файловый менеджер. Joomla 4 имеет полностью переработанный медиа-менеджер. Теперь из коробки Вы имеете поддержку webp и встроенный простой редактор изображений.
![Новый медиа-менеджер Joomla 4 Новый медиа-менеджер Joomla 4](https://habrastorage.org/getpro/habr/upload_files/fe0/0c7/a46/fe00c7a4663b0df14e0e39c06c9cb04e.jpg)
![Редактирование изображений в стандартной поставке Joomla 4 Редактирование изображений в стандартной поставке Joomla 4](https://habrastorage.org/getpro/habr/upload_files/2f5/002/88f/2f500288f3008e6c5f2805a0bb914e34.jpg)
Новая сущность - Процессы (Workflow)
Любой контент проходит несколько этапов создания. Настроить эти этапы под себя можно с помощью Процессов в Joomla 4.
![Изменение стадии процесса при создании материала Joomla 4. Изменение стадии процесса при создании материала Joomla 4.](https://habrastorage.org/getpro/habr/upload_files/80a/0ed/380/80a0ed380627263cd0d1a3864c0b7321.gif)
Web Services (REST API Joomla 4)
В "коробке" Joomla 4 появился долгожданный REST API, который позволяет получать информацию с сайта как другим сайтам, так и мобильным приложениям. Раньше для этого необходимо было устанавливать сторонние расширения.
Пример работы с REST API Joomla 4
Улучшения безопасности
Повышена безопасность Joomla 4 в целом, так как переработан механизм запросов в базу данных. Теперь "под капотом" используются prepared SQL statements.
Стандартная шаблонизация HTML-писем Joomla 4
![](https://habrastorage.org/getpro/habr/upload_files/5aa/0de/6a8/5aa0de6a81f743c16be7a13467381aa3.jpg)
Для каждого компонента возможно создавать HTML-шаблоны писем уведомлений. Компонент предоставляет переменные, значения которых будут подставляться в шаблон письма. По умолчанию в настройках шаблонов писем включен тип письма "текст без HTML", чтобы появился HTML-каркас письма включаем этот тип в настройках. Обратите внимание на то, что шаблоны писем можно создавать для каждого установленного языка: для русского языка - свой шаблон (логотип, телефоны и т.д.), для украинского - свой, английского - третий и т.д.
![Настройки шаблонов писем в Joomla 4 Настройки шаблонов писем в Joomla 4](https://habrastorage.org/getpro/habr/upload_files/cb2/b0b/169/cb2b0b169dbe2b80b151833b13a2e539.jpg)
![Для тела письма включён редактор. Если выключить - можно вставить заранее заготовленную вёрстку. Для тела письма включён редактор. Если выключить - можно вставить заранее заготовленную вёрстку.](https://habrastorage.org/getpro/habr/upload_files/39e/176/fb0/39e176fb0906874a88291605eabe32b9.jpg)
Улучшенный и расширенный 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.
![](https://habrastorage.org/getpro/habr/upload_files/ef0/3f8/e67/ef03f8e6722e01bcc0f11db4b3d3b533.png)
После проверки отображается информация о совместимости.
![](https://habrastorage.org/getpro/habr/upload_files/c59/0b5/033/c590b5033e8c87f79cf3e039f09fdda2.png)
![](https://habrastorage.org/getpro/habr/upload_files/6d2/38e/abb/6d238eabbfc5efa33c13d840f2fb2d5a.png)
![](https://habrastorage.org/getpro/habr/upload_files/f7a/c3d/b0e/f7ac3db0ea961a1c8b7b2194b4796fab.png)
Перед обновлением на 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-сообщество!