Основные возможности
В Joomla! 3.8 будет две основные фичи: новая система роутинга и начало подготовки слоя совместимости с Joomla! 4.0.
Роутер
Проект, который длится уже несколько лет, наконец-то будет доступен пользователям в Joomla! 3.8. Роутер будет иметь новый и более гибкий интерфейс по созданию и обработке URL, который будет давать конечным пользователям больше возможностей по настройке отображения URL (в том числе наиболее востребованную возможность по удалению числовых ID элементов контента).
В компонентах, которые будут поддерживать новый роутер (Материалы, Контакты, Пользователи и Ленты новостей), будет возможность выставить работу роутера в три режима: текущая система роутинга (останется по умолчанию для новых установок и рекомендуется для текущих сайтов), новая система роутинга и новая система роутинга с удалёнными ID элементов контента.
Пользователи, которые спешат обновиться до новой системы роутинга, должны принять во внимание следующее – новая система не совместима на 100% с существующим роутером. В существующем роутере есть некоторые известные причуды в том, как генерируются и обрабатываются URL, и эти причуды не будут существовать в новой системе. Для демонстрации изменений, возьмём две страницы из существующих демо-данных и применим все три настройки.
Страница категории Animals Photo Gallery:
- Существующий роутер: /article-categories/72-park-site/photo-gallery/animals
- Новый роутер с ID: /article-categories/26-park-site/28-photo-gallery/72-animals
- Новый роутер без ID: /article-categories/park-site/photo-gallery/animals
Страница материала Koala:
- Существующий роутер: /article-categories/72-park-site/photo-gallery/animals/25-koala
- Новый роутер с ID: /article-categories/26-park-site/28-photo-gallery/72-animals/25-koala
- Новый роутер без ID: /article-categories/park-site/photo-gallery/animals/koala
Как мы видим, есть случаи, когда новая система роутинга может изменить URL страниц и быть причиной того, что существующие страницы будут отдавать ошибку 404. Задача #14848 открыта для обсуждения по плану миграции.
Слой совместимости с Joomla! 4.0
В Joomla! 4.0 архитектура ядра будет поддерживать и в большинстве использовать код с пространством имён. Для добавления совместимости с новыми классами, начиная с 3.8, большинство классов будут использовать названия классов с пространством имён, а существующие названия классов будут поддерживаться через алиасы классов (то, что уже делается с версии 3.3). Поддержка старых названий классов будет существовать до версии 5.0, а добавление этой работы в 3.8 позволит разработчикам использовать некоторые концепты Joomla! 4 в своих Joomla! 3 расширениях.
Как часть этого изменения, обновление до 3.8 будет более ресурсо-интенсивным. Во время обновления ядра, когда файл переносится или удаляется в пакете, есть шаг, которые удаляет старую версию файла с вашего сайта. Большая часть файлов в директориях libraries/cms и libraries/legacy была перенесена в директорию libraries/src, поэтому обновление до 3.8 будет означать, что большинство файлов в этих двух директориях будет удалено в рамках процесса обновления.
Дополнительные возможности
Несмотря на то, что основная работа в 3.8 будет сосредоточена на этих двух основных возможностях, другие предложения будут также рассмотрены. Некоторые из них уже выделены в 3.8 General project board на GitHub. Другие можно увидеть под лейблом New Feature на GitHub и они требуют либо тестирования сообществом, либо находятся на стадии написания кода.
График
На данный момент, релиз первой бета-версии Joomla! 3.8 запланирован на 24 июля 2017, а стабильный релиз на первую половину сентября. Все новые возможности будет заморожены 14 июля. Это значит, что все новые предложения по новым возможностям должны быть либо протестированы, либо находится в состоянии “ready to commit”, либо замерджены, чтобы попасть в релиз. И как обычно, этот график может быть изменён, если возникнут какие-то большие проблемы или сомнения. Самая свежая информация по этому графику может быть найдена на странице дорожной карты проекта.