Drupal Release: 8.0-alpha11
Pre Release
Tag Name: 8.0-alpha11
Release Date: 4/23/2014
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-alpha11 brings significant improvements to the development version of Drupal 8, focusing on installation stability, performance, and developer experience. This release fixes critical installation issues with opcode caching, improves configuration management, introduces PSR-4 support for module class files, and enhances entity handling. Key updates include jQuery updates to 2.1.0, Guzzle upgrade to version 4, and renaming the Edit module to QuickEdit. This alpha release continues to refine Drupal 8's architecture while addressing numerous bugs and performance issues.
Highlight of the Release
- Fixed critical installation issues with opcode cache in PHP 5.5
- Introduced PSR-4 support for module class files
- Upgraded jQuery to version 2.1.0
- Renamed Edit module to QuickEdit for better clarity
- Improved configuration management with better validation and error reporting
- Enhanced entity API with new interfaces and better handling
- Upgraded to Guzzle 4 for HTTP requests
Migration Guide
PSR-4 Migration
If you're developing modules for Drupal 8, you should start planning to move your class files to follow PSR-4 standards. While PSR-0 is still supported, the direction is clearly toward PSR-4. Use the provided script at core/scripts/switch-psr4.sh to help with this transition.
Module Renamed: Edit → QuickEdit
The Edit module has been renamed to QuickEdit for better clarity. Update any references in your code:
- Change module dependencies from 'edit' to 'quickedit'
- Update any JavaScript or CSS that targets Edit module elements
- Update any documentation references
Menu Module → Menu UI Module
The Menu module has been renamed to Menu UI module. Update your module dependencies and any code references accordingly.
Deprecated Functions Removed
Many deprecated functions have been removed. Make sure to update your code if you were using any of these:
drupal_get_form()- Use form builder service instead- Deprecated language functions - Use the new language API
- Deprecated Element functions - Use the new Element API
- Deprecated XSS filter functions - Use the new filtering system
- Deprecated URL functions - Use the URL generation service
Entity API Changes
- If you're working with entities, update your code to use the new interfaces:
ContentEntityTypeInterfaceFieldStorageDefinitionInterface
- Update entity storage code to use the improved methods
Configuration Path Changes
Default configuration has been moved to extension/config/install to clarify its purpose. If you were looking for configuration in other locations, update your paths accordingly.
Upgrade Recommendations
This is an alpha release (8.0-alpha11) and is not recommended for production sites. It's intended for developers who are working on Drupal 8 development and testing.
For developers working with Drupal 8:
- Update your development environments to test with this alpha release
- Begin adapting your custom modules to use PSR-4 for class files
- Review and update any code that uses deprecated functions that have been removed
- Test your modules with the new entity API interfaces
- If you're using the Edit module, update references to the new QuickEdit name
For site owners:
- Continue using Drupal 7 for production sites
- Consider setting up a test environment with Drupal 8 alpha to begin familiarizing yourself with the new features and changes
This alpha release contains significant architectural changes and bug fixes, but is still under active development. Expect breaking changes in future alpha and beta releases.
Bug Fixes
Installation and Update Issues
- Fixed critical installation failure when opcode cache is enabled
- Fixed opcode cache utility breaking CLI site install for PHP 5.5
- Fixed installer breaking with fatal error on PHP 5.3
- Fixed update.php to properly invoke hooks again
- Fixed database port and table prefix not being picked up from settings.php during installation
Entity and Field Issues
- Fixed preview in Create Article giving an error
- Fixed filter order not being respected
- Fixed StringLong's schema
- Fixed Views handlers being initialized during route building
- Fixed broken subtree in toolbar when using a different language
- Fixed form redirects from 403/404 pages
- Fixed link field not accepting valid path aliases
- Fixed user entity reference filter configuration
Configuration Issues
- Fixed RequestStack not being persisted across kernel rebuilds
- Fixed Views blocks missing dependency on view
- Fixed theme settings configuration issues
- Fixed image field crashing when using an inexistent default image
UI and Display Issues
- Fixed tracker pager inconsistency
- Fixed tab-select rendering grippie white on white
- Fixed form submit buttons outline on focus
- Fixed icons in toolbar being slightly misaligned
- Fixed date field required marker rendered as "Array"
- Fixed 'Back to site' button forgetting last non-admin page
- Fixed PHP notice displayed for forum blocks when no forum topics exist
- Fixed two-column layout broken by vertical toolbar
- Fixed help blocks displaying on 403/404 pages
Other Fixes
- Fixed maximum port number validation
- Fixed circular reference issues in various components
- Fixed taxonomy_index table structure to prevent duplicates
- Fixed array to string conversion error when adding a new user
New Features
PSR-4 Support for Module Class Files
Drupal 8 now supports PSR-4 for module-provided class files, improving the organization and autoloading of PHP classes. This is a significant step in modernizing Drupal's code architecture and aligning with PHP standards. A script (core/scripts/switch-psr4.sh) has been added to help move module class files to their new PSR-4 locations.
Enhanced Configuration Management
Configuration import validation now lists multiple issues and provides translatable error messages, making it easier to identify and fix problems during configuration imports. A new way to add steps to configuration synchronization has been added, allowing for more flexible and powerful configuration workflows.
Improved Entity API
Several enhancements to the Entity API improve developer experience:
- New
ContentEntityTypeInterfacefor better type hinting - Introduction of
FieldStorageDefinitionInterfacein the Entity Field API - Improved
EntityBase::id()method for better developer experience - Support for keeping revision IDs during migration
Cache Tags for Entities
Entity base classes now provide standardized cache tags and built-in invalidation, making it easier to properly cache entity-related content and invalidate those caches when entities change.
New Cache Methods
Added CacheBackendInterface::setMultiple() to improve performance when setting multiple cache items at once.
Entity Operations API
Introduced hook_entity_operation() to allow modules to define operations for entities in a standardized way.
Security Updates
Security Hardening
- Added security hardening protection option for programmatic form submissions
- Improved HTTPS peer verification when cURL is available
- Fixed session handling security issues
Database Security
- Improved database schema field/column default value quoting via PDO::quote()
- Fixed table prefix error handling when prefix is incorrect
Other Security Improvements
- Removed eval() from locale.module, eliminating a potential security risk
- Added CSRF token validation improvements
Performance Improvements
Cache Improvements
- Added
CacheBackendInterface::setMultiple()for better performance when setting multiple cache items at once - Improved cache handling for blocks with per-active-trail caching for SystemMenuBlock and BookNavigationBlock
- Added theme cache tag to page cache entries for better cache invalidation
- Micro-optimization in _theme function
Database Improvements
- Added primary key to taxonomy_index table to improve query performance
- Improved handling of database flood backend
Plugin Discovery Optimization
- Moved all plugin and other discovery data into a dedicated cache_discovery bin for better organization and performance
Session Handling
- Objectified session management functions and removed session.inc for better performance and maintainability
Other Performance Enhancements
- Improved menu tree caching
- Consolidated system module configuration files for better performance
- Removed unnecessary separate config load call when loading languages
Impact Summary
Drupal 8.0-alpha11 represents a significant step forward in the development of Drupal 8, addressing critical installation issues and improving developer experience. The introduction of PSR-4 support aligns Drupal more closely with PHP standards, while enhancements to the Entity API and configuration management system provide more robust tools for developers.
The fixes for opcode cache issues during installation are particularly important, as they resolve critical blockers that prevented many developers from successfully installing Drupal 8. The upgrade to jQuery 2.1.0 and Guzzle 4 keeps Drupal current with modern dependencies.
For developers, this release offers numerous improvements in code organization, API clarity, and performance. The continued refinement of the entity system, configuration management, and caching mechanisms demonstrates Drupal 8's commitment to a modern, maintainable architecture.
While this is still an alpha release not intended for production use, it shows steady progress toward a more stable and feature-complete Drupal 8. The focus on fixing critical bugs while continuing architectural improvements indicates that the project is maturing and moving closer to beta status.
Statistics:
User Affected:
- Installation process is more stable with fixes for opcode cache issues
- Configuration management improvements with better validation and error reporting
- Better handling of language configuration and interface
- Improved block and menu management
