Вы здесь

Drupal 8.3.0

Описание версии

Эта версия включает улучшения в области редактирования содержания, управления сайтом, поддержки REST и стабильную версию модуля BigPipe. В Друпал 8.3.0 включены новые экспериментальные модули для работы с абстрактными возможностями рабочего процесса, разными макетам для разных типов содержания (например, макет типа содержания «Статья» может быть двухколоночным, а макет типа содержания «Пресс-релиз» трёхколоночным) и общий API макетов для дополнительных модулей. Кроме того, множество мелких улучшений внесено в модуль Content Moderation. Не забывайте, что экспериментальные модули включаются в стандартную сборку для тестирования и полностью не поддерживаются.

Улучшенное добавление содержания

Друпал 8.3 распространяется с обновлённым текстовым редактором CKEditor 4.6, который содержит множество улучшений, включая улучшенную поддержку вставки содержания из текстового редактора Microsoft Word и новую стандартную обложку, которая лучше соответствует стандартной теме управления Seven. Также был добавлен плагин AutoGrow, который позволяет удобнее работать при больших разрешениях монитора.

Быстрая правка изображений теперь поддерживает возможность перетаскивания мышкой.

Улучшения в области создания и управления сайтом

В Друпале 8.3 переделана страница статуса системы и теперь важные статусные сообщения размещены удобнее.

Другие улучшения:

  • Страница со списком видов стандартизирована с другими списками управления сайтом
  • Строка ввода разрешённых тегов HTML изменена на текстовую область, что значительно улучшает эргономику этого поля
  • Фильтры на обзорных страницах содержания и пользователей теперь переупорядочены таким образом, чтобы они совпадали с порядком колонок в списках
  • Поля загрузки изображений ограничены приёмом только изображений, благодаря чему пользователям мобильных устройств теперь не предлагается вводящий в заблуждение и неподдерживаемый параметр загрузки видео

Улучшенный модуль BigPipe

Версия модуля BigPipe стала стабильной. Этот модуль реализует стратегию рендеринга страниц Facebook BigPipe, что значительно ускоряет восприятие загрузки страниц с динамическим, персонализированным и некешируемым содержанием.

Стандартный модуль BigPipe также используется дополнительным модулем Sessionless BigPipe для использования этой техники при ответе на первый (отдача содержания не из кеша) запрос анонимного посетителя.

Возможности платформы для веб-сервисов

В Друпале 8.3 расширена поддержка веб-сервисов, позволяющих работать с распределёнными сайтами и приложениями, исправлены ошибки предыдущих версий и добавлены новые возможности. Теперь Друпал позволяет регистрировать пользователей через REST API; вместе с ответом 403 «Доступ запрещён» возвращается причина, по которой доступ был запрещён; а быстродействие анонимного REST API было улучшено на 60% при использовании внутреннего кеширования страниц. Кроме того, для REST API написано большое количество тестов.

Экспериментальный модуль: выбирайте разные макеты форм и дисплеев для разных типов объектов

Новый экспериментальный модуль Field Layout позволяет веб-мастеру переупорядочивать поля в типе содержания, типах блоков и так далее, помещать их в новые регионы, как в форме так и дисплее, в тех же самых формах, которые используются в обычном интерфейсе полей сайта.

Field Layout также используется новым стандартным модулем Layout Discovery, который реализует API для модулей и тем, позволяющий регистрировать макеты и работать с ними также, как с пятью общими стандартными макетами. Добавление этого API в ядро помогает обеспечить совместимость макетов ядра и макетов дополнительных решений друг с другом. Следующие дополнительные модули уже имеют свежие dev-версии поддерживающие новый API:

Экспериментальный модуль: улучшение модерации содержания

Модуль Content Moderation, который был включен в версию Друпал 8.2, теперь сопровождается более абстрактным модулем Workflows, который взял на себя основные возможности организации рабочего процесса и API. Это позволяет дополнительным модулям реализовывать рабочие процессы, которые не имеют дел с публикацией содержания, например, работают с пользователями или товарами. Модуль Workflows реализует интерфейс для пакетов состояний с их переходами в рабочем процессе, который модуль Content Moderation может применять к содержанию, что делает настройку модерации более лёгкой.

Есть ещё несколько небольших улучшений. Теперь можно модерировать непереводимые типы объектов, типы объектов без пакетов и любой тип объекта, который поддерживает публикацию (не только документы). Состояния модерации также возвращаются при откате к предыдущей версии.

Обновление сайта и проектов

Ветка 8.3.x полностью совместима с ветками 8.2.x и 8.1.x, но при обновлении может потребоваться внесение небольших изменений в дополнительные модули, темы и переводы, так как эта ветка содержит небольшие изменения в текстовых строках, интерфейсе и API.

Backwards compatibility break to correct Serialization module output

All serialized values are strings, should be integers/booleans when appropriate corrects a bug that would output all scalar values as strings rather than the correct data type in serialized output, including REST responses. This fix may require some client application updates if the application relies on these values being strings.

An opt-in backwards compatibility mode is configurable at the site level, but not enabled by default. Read the change record for more information on this change and on configuring the backwards compatibility mode.

Updated Content Moderation (alpha stability)

Content Moderation allows content workflow states such as Draft, Archived, and Published, and now depends on the new experimental Workflows module (described above) to supply workflows and transitions for these states. See the Workflows change record for more information.

Important: If you previously installed Content Moderation in 8.2.x, you must uninstall it before upgrading to 8.3.0 or you will encounter fatal errors. You will need to reconfigure and reapply your workflows and transitions with the new module after upgrading and re-enabling Content Moderation, so be sure to back them up beforehand. (No upgrade path is supplied since the module is still alpha stability.)

Изменения в файле .htaccess

  RewriteRule "(^|/)\.(?!well-known)" - [F]

Заменено на:

  RewriteRule "/\.|^\.(?!well-known/)" - [F]

Изменения файле example.settings.local.php

Добавлены строки:

/**
* Disable caching for migrations.
*
* Uncomment the code below to only store migrations in memory and not in the
* database. This makes it easier to develop custom migrations.
*/
# $settings['cache']['bins']['discovery_migration'] = 'cache.backend.memory';

Добавлены строки:

/**
* Skip file system permissions hardening.
*
* The system module will periodically check the permissions of your site's
* site directory to ensure that it is not writable by the website user. For
* sites that are managed with a version control system, this can cause problems
* when files in that directory such as settings.php are updated, because the
* user pulling in the changes won't have permissions to modify files in the
* directory.
*/
$settings['skip_permissions_hardening'] = TRUE;

Изменения в файле default.settings.php

Изменение 1

* To have all database names prefixed, set 'prefix' as a string:
* @code
*   'prefix' => 'main_',
* @endcode

Заменено на:

* To have all database names prefixed, set 'prefix' as a string:
* @code
*   'prefix' => 'main_',
* @endcode
*
* Per-table prefixes are deprecated as of Drupal 8.2, and will be removed in
* Drupal 9.0. After that, only a single prefix for all tables will be
* supported.

Изменение 2

/**
* The active installation profile.
*
* Changing this after installation is not recommended as it changes which
* directories are scanned during extension discovery. If this is set prior to
* installation this value will be rewritten according to the profile selected
* by the user.
*
* @see install_select_profile()
*/

Заменено на:

/**
* The active installation profile.
*
* Changing this after installation is not recommended as it changes which
* directories are scanned during extension discovery. If this is set prior to
* installation this value will be rewritten according to the profile selected
* by the user.
*
* @see install_select_profile()
*
* @deprecated in Drupal 8.3.0 and will be removed before Drupal 9.0.0. The
*   install profile is written to the core.extension configuration. If a
*   service requires the install profile use the 'install_profile' container
*   parameter. Functional code can use \Drupal::installProfile().
*/

Обновление системы

Пошаговое описание обновления системы до новой версии смотрите в документации.

Дополнительная информация

Журнал изменений

2017.04.05

- Added modules:
    * Added the Workflows module (experimental) which abstracts transitions and
      states from Content Moderation into a separate component for reuse by
      other modules implementing non-publishing workflows.
    * Added the Layout Discovery module (experimental) which provides an API for
      modules or themes to register layouts.
    * Added the Field Layout module (experimental) which provides the ability
      for site builders to rearrange fields on content types, block types, etc.
      into new regions, for both the form and display, on the same forms
      provided by the normal field user interface.
- Updated vendor libraries:
    * Updated to Twig 1.25.
    * Updated to jQuery 2.2.4.
    * Updated to CKEditor 4.6.2 (with new Moono-Lisa skin).
    * Updated Symfony components to 2.8.18.
    * Updated PHPUnit to 4.8.35.
    * Applied patch-level updates to the latest versions for all dependencies
      wherever possible. Minor updates applied for Symfony PSR-7 Bridge and
      Zend Stdlib, which Drupal does not depend on directly.
- Browser support:
    * Advance notice: Internet Explore 9 and 10 will no longer supported from
      8.4.x, scheduled for October 2017. Microsoft has now ended support for
      these browsers. Drupal will still support Internet Explorer 11 and its
      replacement, Edge.
- Raised stability levels of experimental modules:
    * Updated the BigPipe module from beta to stable.
    * Updated the Migrate module from alpha to beta.
    * See https://www.drupal.org/core/experimental#versions for more
      information about the stability levels of experimental modules.
- Improved authoring features:
    * Can now drag and drop images into image fields in Quick Edit mode.
    * Image fields are now limited to only accepting images, so that users on
      mobile clients are not offered a confusing and non-functional video
      upload option.
    * CKEditor now utilizes the AutoGrow plugin to better take advantage of
      larger screen sizes.
- Improved site building and administration:
    * Redesigned status report.
    * Standardized display of Views overview page to more closely match that of
      other administrative overview pages.
    * Views filter order now matches the table column order below in Content
      and People overview pages.
    * The "Allowed HTML tags" input has been converted to a textarea, which
      significantly improves the usability of HTML filter configuration.
    * Removed the 'disabled' region from block administration.
    * Incoming paths are again case-insensitive for routing, similar to earlier
      major Drupal versions.
- Content Moderation improvements (experimental):
    * Refactored to use new experimental Workflows module.
    * Now supports moderation of non-translatable entity types.
    * When reverting a moderated revision, the moderation state is now
      reverted too.
    * Added an API to create and enforce default workflow states and
      transitions.
    * Allow moderation of entity types without bundles, as long as they have
      revisions.
    * Publishes any entity type that implements EntityPublishedInterface, not
      just Nodes.
- Migration improvements (experimental):
    * Drupal 7 core node translations are now migrated to Drupal 8.
    * Configuration translation support is added to migrations in general and
      implemented for Drupal 6 user profile fields.
- Improved REST API and decoupled site features:
    * REST API now supports the registering of users.
    * Anonymous REST API performance increased by 60% by utilizing the internal
      page cache.
    * Improved the response bodies and status codes for requests with incorrect
      request headers or request bodies, in dozens of situations.
    * Massive overhaul of the test coverage.
    * 403 responses now return reason why access was denied.
    * Serialized values for Booleans and integers are now returned as the
      correct data type, rather than incorrectly typed as strings.
- Improved performance/scalability:
    * Optimized class loader detection made more generic to support class
      loaders other than ApcClassLoader.
    * ViewsData and Token info cache now use the default cache bin to prevent
      APCu memory from being filled too quickly.
    * Improve statistics performance by adding a swappable backend.
- Improved developer APIs:
    * Deprecated several routing services in favor of two more unified services.
    * Replaced the deprecated Symfony ExecutionContextInterface by subclassing
      from ConstraintValidator to prepare for an update to Symfony 3.
    * EntityPublishedInterface and EntityPublishedTrait have been added to give
      a generic publishing API, and are being used by Node and Comment entity
      types.
    * Added a collection label to EntityType. This is a plural uppercase label
      for a collection of entities - e.g. "Workflows".
- Changed coding standards:
    * Officially adopted short array syntax and updated all of core accordingly.
    * PHP CodeSniffer and Drupal Coder have been added as composer dev
      requirements, so they can be installed automatically with
      `composer install --dev` rather than requiring separate installation. (Do
      not use `composer install --dev` for production sites.)
    * Most global constants in Drupal 8 have been deprecated in favor of class
      constants. As a best practice, use appropriate class constants rather than
      global constants.
- Testing improvements:
    * Integrated PHPUnit verbose output in SimpleTest UI.
    * Improved backward compatibility with WebTestBase.
    * Improved backward compatibility between BrowserTestBase and WebTestBase.
    * Many old WebTestBase tests have been moved to BrowserTestBase.
    * Expanded automated test coverage for JavaScript.
- Package management:
    * composer.json now uses the new official endpoint for modules and themes,
      packages.drupal.org.
    * Custom modules and themes can now be installed to correct locations using
      composer.
    * Added Package.json enabling new JavaScript language features.