Home

>

Tools

>

Drupal

>

Releases

>

8.0.0-beta7

Drupal Release: 8.0.0-beta7

Pre Release

Tag Name: 8.0.0-beta7

Release Date: 2/24/2015

Drupal LogoDrupal

Highly flexible, open-source content management system known for complex, scalable web applications. Preferred by government, educational, and large enterprise websites requiring advanced customization and security features. Robust module ecosystem.

TL;DR

Drupal 8.0.0-beta7 brings significant improvements to the development version of Drupal 8. This release focuses on bug fixes, performance improvements, and code cleanup rather than introducing major new features. Key highlights include improved session handling, enhanced URL generation and handling, CSS cleanup across multiple themes, better PostgreSQL support, and various security improvements. The release also includes important fixes for entity handling, configuration management, and template inheritance. This beta represents continued progress toward a stable Drupal 8 release with emphasis on stability and performance.

Highlight of the Release

    • Improved session handling with better Symfony integration
    • Enhanced URL generation with new methods and deprecation of old functions
    • Significant CSS cleanup across multiple themes following CSS standards
    • Better PostgreSQL support with various fixes
    • Enhanced entity handling and configuration management
    • Improved accessibility with required alt tags for images
    • Fixed template inheritance for subthemes
    • Better responsive image support with sizes attribute

Migration Guide

URL Generation Changes

If your code uses _url() or _l() functions, you should update to use the new URL API:

  • Replace _url() with Url::fromRoute() or the new Url::fromUserInput()
  • Replace _l() with the Link generator service

Session Handling Updates

If your code interacts with the session system:

  • Replace uses of SessionManager::isEnabled(), SessionManager::enable() and SessionManager::disable() with the new session handler service
  • Update any code that accesses the session directly to use dependency injection

Deprecated Functions Removal

The following functions have been removed and should be replaced:

  • drupal_is_front_page() - Use the path.matcher service instead
  • module_implements() and module_list() - Use the module_handler service
  • module_install() and module_uninstall() - Use the module_installer service
  • drupal_pre_render_html() - Use the renderer service

Template Changes

If you have custom themes that extend core templates:

  • Review your templates as many classes have been removed from system templates
  • Check subtheme template inheritance as it was previously working in reverse order
  • Update any CSS that depends on classes that have been removed or renamed

Upgrade Recommendations

For Development Sites

This is a beta release intended for testing and development purposes. If you're already running a previous beta version of Drupal 8, upgrading to beta7 is recommended to test your modules and themes with the latest improvements and bug fixes.

For Production Sites

As this is a beta release, it is not recommended for production websites. Production sites should continue using Drupal 7 until the final release of Drupal 8.

Upgrade Path

When upgrading from beta6 to beta7:

  1. Back up your site's code, files, and database
  2. Put the site in maintenance mode
  3. Update the codebase to beta7
  4. Run the database updates via the UI at /update.php or using Drush
  5. Clear all caches
  6. Test thoroughly before taking the site out of maintenance mode

Module and Theme Compatibility

Module and theme developers should test their code against this release to ensure compatibility with the latest changes, particularly:

  • URL generation changes
  • Session handling updates
  • Template and CSS changes
  • Entity handling modifications

Bug Fixes

Entity and Field Handling

  • Fixed fatal error when accessing protected property Drupal\block\Entity\Block::$id
  • Fixed "Column not found" error when adding file relationship
  • Fixed issue where blocks were invisible while selecting content types
  • Fixed JavaScript error on bottom left when editing a field
  • Fixed issue where language/translation settings were not saved when adding a new bundle
  • Fixed issue where deleted bundles did not have their language configuration deleted
  • Fixed issue where ResponsiveImageFormatter threw an exception on node preview

Template and Theme Issues

  • Fixed subtheme template inheritance that was working in reverse order
  • Fixed Firefox crash when using a modal
  • Fixed Bartik footer CSS regressions
  • Fixed primary navigation toggle in Bartik
  • Fixed menu item "active" class not being correctly added when using a view as the frontpage

Configuration and Performance

  • Fixed performance bug in ControllerResolver::getControllerFromDefinition()
  • Fixed issue where Views was recalculating dependencies for non-overridden handlers multiple times
  • Fixed issue where switching the entity storage class was incorrectly considered a definition update
  • Fixed issue where schema for newly defined entity types was never created
  • Fixed issue where content translation schema updates were not triggered consistently

PostgreSQL Support

  • Fixed PostgreSQL constraints not getting renamed by db_rename_table()
  • Fixed PostgreSQL tests in comment, search, locale, and block_content test groups
  • Fixed SQLite REGEXP user function implementation
  • Fixed SQLite not natively supporting CONCAT_WS()

Security and Access

  • Fixed potential data loss with concurrent node edits leaking through preview
  • Fixed trusted_host_patterns being ignored due to incorrect location of include statement
  • Fixed incorrect regex in trusted_host_patterns example

New Features

Improved URL Generation and Handling

  • Added Url::fromUserInput() method for generating URLs from user-entered paths
  • Replaced hardcoded URL generation with proper methods
  • Deprecated _url() and _l() functions in favor of the new URL API

Enhanced Session Handling

  • Registered Symfony session components in the Dependency Injection Container
  • Injected session service into request objects
  • Replaced static SessionManager::$enabled property with WriteSafeSessionHandler class
  • Exposed session handler in container

Better Entity Handling

  • Added support for base fields with multiple columns in entity queries
  • Fixed entity storage class switching to not require schema changes
  • Improved handling of entity dependencies in configuration

Improved Autocomplete UI

  • Implemented autocomplete UI for the link widget
  • Updated the Node views wizard to use 'entity_autocomplete' for the "tagged_with" field

Security Updates

Password and User Data Protection

  • Implemented protection to never serialize password fields by default (Issue #2338559)
  • Fixed potential data loss with concurrent node edits leaking through preview
  • Improved handling of trusted host patterns in configuration files

Input Validation and Sanitization

  • Fixed double escaping in search result info
  • Improved validation for language setting forms
  • Enhanced URI access validation by moving it from widget to field constraint
  • Fixed title escaping with HTML markup when editing content translation

Configuration Security

  • Improved handling of trusted_host_patterns in settings.local.php
  • Fixed incorrect regex in trusted_host_patterns example
  • Enhanced security of configuration entities with better dependency handling

Performance Improvements

Query and Database Optimization

  • Fixed performance bug in ControllerResolver::getControllerFromDefinition()
  • Improved Views performance by preventing recalculation of dependencies for non-overridden handlers and plugins
  • Optimized entity query handling with support for base fields with multiple columns
  • Improved session handling performance with better integration of Symfony components

Cache Improvements

  • Introduced parameter-dependent cache contexts for more granular caching
  • Replaced hardcoded cache key on book navigation block with a 'book navigation' cache context
  • Replaced hardcoded langcode key on blocks with the 'language' cache context
  • Skip fast chained cache backend in maintenance mode for better performance

Code Optimization

  • Reduced memory usage in SimpleTest by adjusting memory limit
  • Improved EntityDisplayBase::__wakeup() to avoid calling toArray()
  • Removed unnecessary query against the session table in WebTestBase
  • Optimized vertical tabs to not save form values unnecessarily

Impact Summary

Drupal 8.0.0-beta7 represents a significant step toward a stable Drupal 8 release, focusing on bug fixes, performance improvements, and code cleanup rather than introducing major new features. This release addresses over 100 issues across various components of the system.

The most impactful changes include improved session handling with better Symfony integration, enhanced URL generation with new methods like Url::fromUserInput(), and significant CSS cleanup across multiple themes following Drupal's CSS standards. PostgreSQL support has been strengthened with various fixes for constraints and functions.

For developers, the deprecation of functions like _url(), _l(), and drupal_is_front_page() means code updates will be necessary, but these changes align with Drupal 8's more object-oriented architecture. Theme developers will need to review their templates as many classes have been removed from system templates, and the template inheritance for subthemes has been fixed.

Site builders will benefit from fixes to block visibility, better handling of custom block types, and improved language configuration. Content editors will see improvements in the node preview functionality and autocomplete UI for link widgets.

Overall, this beta release improves stability, performance, and security while continuing to refine Drupal 8's architecture and user experience. As a beta release, it's suitable for testing and development but not yet recommended for production sites.

Statistics:

File Changed300
Line Additions1,039
Line Deletions1,025
Line Changes2,064
Total Commits250

User Affected:

  • Improved URL generation with new methods like `Url::fromUserInput()` and deprecation of `_url()` and `_l()`
  • Enhanced session handling with better DIC integration
  • Cleaner code with removal of deprecated functions like `drupal_is_front_page()` and `module_implements()`
  • Better PostgreSQL support with fixes for constraints, CONCAT_WS(), and REGEXP functions
  • Improved entity handling with fixes for multiple column base fields and entity storage class switching

Contributors:

webchickalexpottdbuytaertjhodgdon-drp