Developing with components for cross-version Drupal code

The vast changes brought by Drupal 8 mean that most projects carried from earlier versions have to entirely be redesigned.

It also implies that, although Drupal 8.0 should be arriving soon, most Drupal projects being launched these days are still on Drupal 7, or even sometimes on Drupal 6 (shudder), project owners having to choose between launching on the soon-obsolescent but well-mastered D7 and the prospect of a costly upgrade path needing to be scheduled rather soon, or committing to the upcoming but not yet stable D8.

At the same time, specialists of framework-based development, especially targeting Symfony2, are aiming at the Drupal market, and Drupal code can not be used in these projects.

However, this need not be the case : with proper programming practice, and especially the use of decoupled components, introduced in Drupal 8 and already popular thanks to Commerce 2 for D8,  it is possible to create huge parts of the business logic in portable code, that can be used indifferently in Drupal 6, 7, 8, Silex, Symfony2, and most other PHP-based environments.

This session describes the mechanisms available for this.