Drupal Release: 8.0-alpha3
Pre Release
Tag Name: 8.0-alpha3
Release Date: 9/4/2013
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-alpha3 brings significant architectural improvements and code cleanup as the project continues its modernization efforts. This release focuses on converting legacy code to new patterns, improving the routing system, enhancing entity handling, and cleaning up unused variables. Key highlights include the introduction of a Composer autoloader, improved WYSIWYG editor support with CKEditor integration, and numerous service-based architecture improvements.
This alpha release represents another step toward a more modern, object-oriented Drupal with better developer experience and cleaner code organization.
Highlight of the Release
- Introduction of Composer autoloader for simpler dependency management
- Improved WYSIWYG editor support with CKEditor integration and image uploading
- Significant architectural improvements with service-based patterns
- Enhanced routing system with better URL generation and link building
- Cleaner code organization with removal of unused variables and legacy code
- Improved block management UI with integrated 'place block' functionality
Migration Guide
Migrating to Drupal 8.0-alpha3
For Module Developers
-
Service-Based Architecture
- Replace
drupal_container()with\Drupal::service()in your modules - Replace
config()with\Drupal::config() - Use the new
entity.managerservice alias instead ofplugin.manager.entity
- Replace
-
Form System Changes
- Convert forms to use the new FormInterface
- Extend FormBase for common form functionality
- Use the new form controllers pattern for form handling
-
Routing System
- Update custom routes to use the new routing system
- Use
_contentwhere possible in routing.yml files - Use the new link generator service for route-based links:
\Drupal::service('link_generator') - Use
\Drupal::url()and\Drupal::l()for generating URLs and links
-
Theme System
- Replace
theme()calls withdrupal_render() - Update custom templates to work with Twig
- Replace
-
Entity System
- Adapt to the new Entity Field API
- Update entity types to use the new location:
Drupal\{provider}\Entityinstead ofDrupal\{provider}\Plugin\Core\Entity - Implement EntityChangedInterface for entities with 'changed' fields
-
Deprecated Functions
- Replace
user_access()calls with->hasPermission() - Avoid using the deprecated global
$uservariable - Replace
variable_*()functions with the configuration system
- Replace
-
Autoloading
- Take advantage of the new Composer autoloader for dependencies
Upgrade Recommendations
As Drupal 8.0-alpha3 is still an alpha release, it is not recommended for production sites. This release is intended for developers who want to test and contribute to Drupal 8's development.
For module developers: This is a good time to start updating your modules to work with Drupal 8's new architecture. Pay special attention to the service-based patterns, new routing system, and form interfaces.
For site builders: You can install this alpha release in a development environment to test compatibility with your existing modules and to familiarize yourself with the new features and UI changes.
For those on Drupal 7: Continue using Drupal 7 for production sites. Use this alpha release only for testing and planning your eventual migration strategy.
When upgrading between alpha releases, be aware that there may be no upgrade path provided, and you might need to reinstall Drupal completely. Always back up your data and code before testing any alpha release.
Bug Fixes
UI and Display Issues
-
Comment Rendering:
- Fixed comment body rendered outside of the bubble (#1965650)
-
Form and Dialog Issues:
- Fixed Form API autocomplete broken for routes (#2056627)
- Fixed Drupal settings getting broken by AJAX requests (#1691394)
- Fixed entity in-place editing toolbar appearing above the Drupal dialog (#2067285)
- Fixed empty vertical tabs area showing when all vertical tabs are hidden (#2067323)
-
Menu and Navigation:
- Fixed menu items not saving if the menu path is an alias (#2063191)
- Fixed search missing from block admin UI after installation (#2067881)
- Fixed local actions 'add new forum|container' no longer found at admin/structure/forums (#2073197)
-
Text and Display:
- Fixed titles often being double-escaped (#2011918)
- Fixed missing
<head>tag (#2011578) - Fixed global text textarea hidden due to CSS problem in Firefox (#2029167)
- Fixed password confirm text extending outside layout on install page (#2070785)
Core Functionality
-
Editor and WYSIWYG:
- Fixed Editor's in-place editing AJAX endpoint (#2031385)
- Fixed inability to change existing images or links through Text Editor's dialogs (#2071957)
-
REST and Views:
- Fixed REST export view adding requirements to all paths, leading to 'Method Not Allowed' on most forms (#2065949)
- Fixed Views trying to find Custom StylePlugin template in core/modules/views/templates (#1911492)
-
Entity and Field Handling:
- Fixed missing filters resulting in Exception when the format is used (#2015313)
- Fixed race condition in caching of field & instance definitions (#2071997)
- Fixed AliasWhitelist implementing CacheCollector incorrectly, resulting in cache write on every request (#2071655)
- Fixed EFQ relationships broken for entity types with bundles (#2044841)
-
Module Management:
- Fixed inability to uninstall any module using the file usage service (#2060405)
Other Fixes
-
Theme System:
- Fixed array('hook') syntax for suggestions being broken for #theme_wrappers() (#2068217)
- Fixed PHP notice when #attributes is not set with #theme_wrappers() 'container' (#2058761)
-
Testing:
- Fixed XDEBUG_SESSION cookie causing upgrade path tests to fail (#2067991)
- Fixed WebTestBase::randomString returning a string containing a $ followed by a number causing assertLink() to fail its xpath match (#2032453)
New Features
Architecture and Developer Experience
- Composer Autoloader: Added Composer autoloader for simpler dependency management (#2038135)
- Service-Based Architecture:
- Added a current user service to ensure current account is always available (#2062151)
- Created a dedicated
@Blockplugin annotation (#2065721) - Added YAML Plugin discovery (#2065571)
- Provided an alias for 'plugin.manager.entity' called 'entity.manager' (#2057869)
UI and Content Editing
- WYSIWYG Improvements:
- Added image uploading to WYSIWYGs through editor.module (#1932652)
- Mapped CKEditor languages to Drupal languages (#2050097)
- Improved in-place editing functionality (#2071957)
- Block Management:
- Moved the 'place block' UI into the block listing for better usability (#2058321)
- Added generic weighting (tabledrag) support for config entities (#1855402)
Routing and URL Handling
- Enhanced Routing System:
- Added a route to the frontpage (#2052995)
- Added a method to the AccessManager that only needs a route name and parameters (#2046737)
- Added route parameters property to menu links (#2051889)
- Added generateFromRoute() method on the URL generator (#2057155)
- Added a link generator service for route-based links (#2047619)
Entity System
- Entity Field API Improvements:
- Switched from Field-based storage to Entity-based storage (#1497374)
- Moved entity type classes from Drupal$provider\Plugin\Core\Entity to Drupal$provider\Entity (#1847002)
- Converted node properties to methods (#2049039)
- Added EntityChangedInterface to allow entities with 'changed' field to be properly cached (#2044583)
Other Features
- File Handling:
- Added support for popular e-book formats, Google web formats, mkv and mka in file_default_mimetype_mapping() (#1443070)
- Testing:
- Provided a TourTestBase class for use by core and contrib modules (#2028535)
Security Updates
No significant security fixes were explicitly mentioned in this release. As this is an alpha release, security issues are typically addressed as they are discovered during the development process.
Performance Improvements
Caching Improvements
- Route and Menu System:
- Added caching for local tasks results (#2032303)
- Cache simpletest_phpunit_get_available_tests() (#2059313)
- Cache local action plugin definitions (#2065149)
Entity and Field System
- Entity Field API:
- Fixed AliasWhitelist implementing CacheCollector incorrectly, which was resulting in a cache write on every request (#2071655)
- Improved handling of field and instance definitions to prevent race conditions in caching (#2071997)
CSS and JavaScript
- Asset Optimization:
- Fixed CSS being truncated when aggregation is turned on (#2040209)
- Used HiDPI icons in the toolbar to support scaling on different devices (#1963886)
- Updated jQuery Once to 1.2.3 (#2075199)
- Removed drupal_add_js()/css from seven.theme for better performance (#1969916)
Impact Summary
Drupal 8.0-alpha3 represents a significant step in Drupal's evolution toward a more modern, object-oriented architecture. This release focuses heavily on code cleanup, architectural improvements, and developer experience enhancements.
The most impactful changes include the introduction of the Composer autoloader, which simplifies dependency management, and the continued refinement of the service-based architecture. These changes lay the groundwork for a more maintainable and extensible Drupal core.
For developers, this release requires adapting to new patterns like service injection, the new routing system, and form interfaces. The shift away from procedural code toward object-oriented approaches continues, with many functions being replaced by methods on services.
Content editors will benefit from improved WYSIWYG editing with better CKEditor integration and image uploading capabilities. Site builders will appreciate the enhanced block management UI with integrated 'place block' functionality.
While this alpha release introduces many improvements, it's important to remember that it's still in development and not suitable for production sites. The changes in this release are primarily focused on architectural improvements rather than end-user features, setting the stage for a more robust and flexible Drupal 8.
Statistics:
User Affected:
- Need to adapt to new service-based architecture patterns
- Should start using Drupal::config() instead of config()
- Should replace theme() calls with drupal_render()
- Need to update to new form interfaces and controllers
- Should use the new Composer autoloader for better dependency management
- Need to adapt to the new routing system for custom modules
