xDruple: Experience the benefits of Drupal 8 in Drupal 7

Thursday, January 25, 2018

Progressive Drupal developers understand the technical benefits of Drupal 8

Drupal 8 is more efficient, scalability is more reliable, and (once you understand it) it’s easier/faster to work with. However, from the perspective of a business decision maker, it’s not clear why the foundation of Drupal 8 would be more cost effective for an organization. Drupal 7 works just fine, right?

Drupal 7 was a very solid version. It continues to offer enough for Drupal users that making the business case for moving to Drupal 8 is difficult. We’ve heard many business leaders or non-technical decision makers say, “we can’t justify the time/cost/effort” or “we’ll just wait for D9.”

As a result, many Drupal sites are “stuck” in Drupal 7. Based on Drupal.org's Core Statistics you can see nearly a million sites are "stuck." This is causing many Developers in the Drupal Community to face the following challenges:

  • Inability to migrate to Drupal 8 due to:
    • Budget constraints
    • Perceived lack of benefit
    • Dependence of other modules on D7
    • Bootstrapping
  • The desire — the need — to work with Drupal in an object oriented manner
  • The need to set up, manage, and migrate among multiple similar environments, such as development, stage, and production
  • Inability to separate code from configuration

xDruple — open source code to solve this dilemma

Over the last four years our team has been focused on integrating Drupal 7 with xTuple ERP. We’ve had the goal of creating an eCommerce, marketing and customer service solution that improves our ERP customers Web presence. As you likely know, eCommerce and enterprise solutions require very high-level code quality and reliability. When we started down this path, we were able to quickly get to a prototype. As the application continued to grow, we eventually reached the limits of what we could accomplish with Drupal.

In the beginning, the codebase included more than 120 enabled core and contributed modules along with a significant amount of custom functionality. Plus, there were many 3rd party PHP libraries. We found that as we continued to grow the application, the system became very difficult to maintain.

Success required many of the features that were planned for Drupal 8. But this was 2014. Drupal 8 was nowhere near production ready. We couldn’t let this project fall apart. Drupal was an important central aspect of the system, so we got creative. We began building an application layer on top of Drupal 7 that helped us overcome these problems. We built xDruple — the result of four years of effort to improve Drupal 7 before Drupal 8 was available.

xDruple is a developer-oriented, object oriented programming (OOP) application framework for Drupal 7, that integrates with major core and contributed modules. 

xTuple built a Drupal 7 system that embraces best practices (unit testing and code-driven development) and full OOP capabilities of PHP. Initially, the goal was to shortcut major Drupal APIs to speed up development of the most critical and complicated components, such as custom form element and field types. We ended up with a large scale application framework on top of Drupal 7 that integrates with major core and contributed APIs. We even reduced the number of enabled modules from 120+ down to approximately 45. All the system dependencies are managed with Composer (a dependency manager for PHP). Business logic code is as separated from Drupal global functions as possible, allowing us to unit test the system. Plus, using PHP7.1 and the best OOP practices allows us to statically check code, which makes refactoring and maintenance seamless.

Why this is so important for the open source community

Inadvertently, we solved many of these current Drupal 7 migration dilemmas with our profile of Drupal. Plus, with our xDruple system, it is possible to utilize many D8 features within D7. We plan to provide a maximum compatibility between our existing Drupal 7 code and the upcoming Drupal 9 system, which will offer a solution to speed up migration from Drupal 7 or help make Drupal 7 easier and faster to maintain.

The xDruple solution is general enough to be useful to others. Although our team has worked with and relied upon on Drupal for over a decade, we have not contributed much to the Drupal Community technically. Now, with four years of hard work under our belts, xTuple is finally ready to give back a huge offering.

Want early access?

Currently, xTuple is migrating and documenting all components of the framework to public access on GitHub. Drupal Developers interested in being one of the first to see the code may sign-up for early access.

 

Josh Fischer

Product Manager — xTupleCommerce

xTuple’s Josh Fischer is passionate about launching successful Web projects — from online retailers and distributors to manufacturers big and small — to improve customer conversions (and bottom line profits!). As product manager of xTupleCommerce, Josh is developing revolutionary B2B eCommerce Web portals — integrated with open source xTuple Enterprise Resource Planning (ERP) — to solve productivity and customer relationship issues for every business type and size. Josh writes and teaches about innovative strategy and technologies to build Web-based brands, launching startups, productivity and leadership, online presence and growth-hacking. Josh is a graduate of the University of Maryland Baltimore County with a B.S. in Visual Arts & New Media.