
На данный момент, доступна 3 альфа версия Drupal 8. Было создано несколько инициативных групп, работающих над основными направлениями: Управление конфигурациями, Дизайн, Мобильные устройства, Многоязычность и Вебсервисы. Ядро сейчас имеет 1600+ контрибутеров (это примерно в два раза больше чем было у Drupal 7). В новой версии сделано более 500 нововведений и изменений. Ниже я упомяну, по моему мнению, наиболее значимые из них. Изменения описываются по отношению к Drupal 7, т.е. предполагается что читатель знаком с Drupal 7.
Изменения доступные через интерфейс
Сделано много улучшений в интерфейсе по умолчанию — что упростит использование CMS не профессиональными пользователями. Так как наиболее востребованная функциональность добавлена в ядро, практически есть все необходимое из коробки, для построения “среднего” веб-сайта без использования сторонних модулей. Что позволит использовать 8-ку сразу после релиза, не дожидаться выхода основных модулей, как это было для предыдущих версий и обычно занимало около 6 месяцев. И так, изменения:
Inline редактирование
Редактирование контента становится очень простым и удобным: кликнув по значку карандаша, возле нужного контента — он становится доступным для редактирования, конечно если у вас есть соответствующие права.
Модуль Views в ядре
Views — это самый популярный модуль. Как показывает его использование в предыдущих версиях Drupal, использование новой версии Drupal значительно возрастает после выхода именно этого модуля.
Встроенная мультиязычность
Для полного использования мультиязычности в предыдущей версии Drupal нужно было дополнительно установить около 5 дополнительных модулей, сейчас мультиязычность поддерживается в ядре в полном объеме. В 8-ке можно, заменить язык по умолчанию — английский на другой.
Встроенный CKEditor редактор
Удобный текстовый редактор теперь доступен из коробки.
Добавление изображений
Появилась возможность, без установки дополнительных модулей, вставлять изображение в нужное место в тексте. Возможна также одновременная загрузка нескольких изображений.
Адаптивный дизайн для встроенных тем
Встроенные темы теперь являются адаптивными и готовы для использования на мобильных устройствах.
Новый тулбар
Тулбар полностью переделан и теперь стал адаптивным, более удобным и интуитивным.
Возможность изменения отображения формы ноды
Изменять отображение формы ноды, теперь можно без написания кода.
Новые типы полей
В ядро встроены дополнительные часто используемые типы полей: Entity Reference (позволяет устанавливать связь между контентами), Date (для событий ), Link, Telephone, Email, Picture.
Система управления конфигурированием
Полностью переделана система конфигурирования и теперь данные о настройках храняться не в базе, как это было раньше, а в файлах. Что позволяет легко экспортировать/импортировать настройки, использовать разные настройки для разработки и релиза а также, хранить данные в системе управления версиями.
Часть модулей удалена из ядра
Это модули: Dashboard, Poll, Blog, Profile, Open ID, PHP filter, Trigger. В большинстве, эти модули сейчас доступны отдельно.
Апгрейт с предыдущих версий
Для обновления с предыдущих основных версий, в ядро интегрирован модуль Migrate, который позволит напрямую обновляться с 6, 7 до 8.
Изменения для разработчиков
Наибольшие изменения касаются разработчиков, так как делается отход от привычной для Drupal технологии разработки в сторону ООП и использования компонентов Symfony2.
Всем известна крутая кривая изучения Drupal. Использование ООП — должно сделать изучение более простым и доступным. Ядро Drupal, еще никогда не было так хорошо документировано, благодаря отличной документации компонентов Symfony2.
Использование ООП
Хотя ООП частично использовалось и раньше, в 8-ке официально принято использование ООП. Начат постепенный отход от процедурного программирования и использования хуков, которые применялись в времена когда ООП еще небыло доступно в нужном объеме в PHP. В связи с этим появляется много новых, для Drupal, концепций и понятий. Для пространств имен принято следовать стандарту PSR-0 (чуть позже, возможно PSR-4). В 8-ке не будет сделан полный переход к ООП и частичное наследие в виде процедурного кода еще останется, но это будет осуществлено в Drupal 9.
Использование компонентов Symfony2
Одним из главных нововведений в 8-ке, является использование компонентов Symfony2:
- HttpFoundation и HttpKernel — одни из основных компонентов, с которых началась интеграция Symfony2 в Drupal. Преобразовывает все что связано с HTTP при запросе и ответе — в объекты;
- Routing — преобразовывает HTTP запрос в вызов определенной функции, подобно hook_menu;
- ClassLoader — используется для загрузки классов по мере необходимости;
- DependencyInjection или Service Container — позволяет сделать классы независимыми, и тем самым делает их доступными для повторного использования и юнит-тестирования;
- EventDispatcher — реализует паттерн Наблюдатель (Observer). Делает тоже самое что и система хуков, но на данный момент, не заменяет их полностью;
- Yaml — позволяет работать с форматом yaml;
- Twig — новый удобный, мощный движок шаблонов;
- Serializer — преобразование объектов в определенный формат и обратно;
- Translation — система переводов;
- Process — используется для выполнения в субпроцессе, команд из консоли;
- Validator — компонент, для проверки значений;
Composer
Менеджер зависимостей, который используется для скачивания и поддержки в актуальном состоянии используемых библиотек, компонент проекта.
Движок шаблонов Twig
Предыдущий движок шаблонов Phptemplate, часто критиковался за неудобства работы с ним, использовании PHP вставок, плохую защищенность. Twig не только лишен этих недостатков, но так же имеет и много преимуществ: прост в изучении, гибок, шаблоны легко читаемы, cловом сплошное удовольствие для темизатора.
Система конфигурирования
Как упоминалось выше, система конфигурирования полностью переработана и сейчас данные хранятся в текстовых файлах, в весьма удобном формате yaml.
PHPUnit
Добавляет возможность юнит-тестирования, которое современем заменит Simpetest.
Новая концепция блоков
В 8-ке, блок — это сущность (Entity), с присущей ей свойствами: создания дополнительных полей, типов блоков, версий.
RESTful сервер
Из коробки, Drupal 8 может работать как REST сервер и обслуживать множество устройств.
Другие сторонние компоненты
- Doctrine — используется не в полном объеме, а лишь небольшая часть — Annotations. Которая добавляет возможность использования аннотаций, например для конфигурирования плагинов;
- EasyRDF — компонент используемый для добавления RDF и тем самым приближая семантический веб;
- Assetic — фреймворк, который используется при скачивании страницы или другого контента, для сжатия и/или преобразования данных;
- Guzzle — http клиент;
- PSR/Log — система логирования;
Плагины
Плагин — это класc который предназначен для дополнения работы ядра или модулей, и по сути является заменой хуков info. Плагин не является отдельным компонентом и входит в состав модуля, в котором может быть много плагинов.
Изменения нужны не всем
Как известно, люди противятся любым изменениям — даже хорошим, так как это выбивает их из накатанной колии и заставляет покинуть зону комфорта. А в данном случае заставляет заняться изучением — что само по себе является весьма полезным, тем более в свете недавней статьи.
Упомянутые нововведения, предположительно связывают с тем, что Drupal 8 движется к корпоративному рынку, где будут больше востребованы профессиональные разработчики. Часть разработчиков, которым
Вместо заключения
Приведенный список изменений является далеко не полным, ознакомиться подробней можно здесь. Работа над Drupal 8 пока не завершена, предположительный выход — первая половина следующего года. Желающие опробовать последнюю версию уже сейчас могут получить пререлиз отсюда или с репозитория.