Drupal 8 Contributed Modules
When engineering your Drupal 8 solution, it is likely that you will need to step outside the capabilities of Drupal 8 core to address the functional requirements of your organization. While Drupal 8 core is feature-rich, it can’t address every possible requirement from every conceivable use of Drupal 8 in organizations around the world. Combining Drupal 8 core with contributed and custom modules will provide the foundation for addressing your organization’s specific needs.
Many organizations fall short when engineering their Drupal footprint by overlooking contributed modules that may solve their functional and technical requirements and, instead, developing custom modules that must then be maintained by their organization. The task of finding the right contributed module or combination of modules is often a tedious one, but the long-term payoff of using contributed modules instead of developing custom modules is significant, especially when considering the cost of upgrading your custom modules to the next major version of Drupal.
There are no easy shortcuts to finding the proper contributed modules to address your functional requirements, other than searching through drupal.org and finding other similar use cases and how people solved those issues. When evaluating contributed modules, there are a few things to keep in mind:
• How many sites report that they are using the module? If the number is small, for example, less than 50, closely examine the functionality to determine why more people aren’t using the module.
• Check the issue queue and read through the bugs that people are reporting. If they seem significant and there are a lot of them, you may want to consider a different path. The sheer number of issues may not always be a good indicator though, because many heavily used modules have issues that number in the hundreds. They key is to look for critical issues and determine how actively people are working on them.
• Check the date of the last update to the released (non-dev) version of the module. If the module hasn’t had a release in several months and there are several outstanding bugs that have been reported and worked on, understand that you may have some additional work to do to apply the patches that developers have submitted to address critical functional and technical bugs.
• Look for known conflicts with other contributed modules in the issue queue. If you have the modules that are reported as conflicting you may want to look for an
alternative solution, as implementing that module may break other functionality on your site.
• Look for hooks that provide you with the ability to augment the module. A hook is a function that allows you to directly interact with the module to modify some aspect of the module’s functionality, such as adding or modifying content that is being processed by that module. A module that provides 80% of the required functionality but has hooks is better than a module that provides 90% of the functionality without the ability to modify the functionality through a hook.
• When presented with multiple options to solve a functional requirement, examine the two modules carefully. Not every module solves the problem the same way and there are likely differences that will sway you one way or another. Another key indicator
is the number of contributors to the module. More contributors mean more arms and legs to work through the issue queue and update the module. There are also well-known developers in the community who are known for the quality of their modules. While everyone can contribute a module, sometimes it pays to stick with the veterans who have consistently delivered high-quality modules to the community.
If at the end of your evaluation you’ve come up empty-handed, custom modules are the acceptable path. Follow Drupal’s best practices, which can be found at drupal.org/coding-standards, and consider contributing your custom module to the community. It’s highly likely that someone else in the world is facing
the same functional requirement and could benefit from your solution. Conversely, you have the opportunity to collaborate with others in the community to augment your custom module to make it even better.
Hire Drupal Development Service