Drupal Release: 8.0.0-beta7
Pre Release
Tag Name: 8.0.0-beta7
Release Date: 2/24/2015
DrupalHighly 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()withUrl::fromRoute()or the newUrl::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()andSessionManager::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 insteadmodule_implements()andmodule_list()- Use the module_handler servicemodule_install()andmodule_uninstall()- Use the module_installer servicedrupal_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:
- Back up your site's code, files, and database
- Put the site in maintenance mode
- Update the codebase to beta7
- Run the database updates via the UI at
/update.phpor using Drush - Clear all caches
- 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::$enabledproperty withWriteSafeSessionHandlerclass - 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:
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
