Drupal is a registered trademark of Dries Buytaert
Protected Pages 3.0.0 Major update available for module protected_pages (3.0.0). Commerce Core 3.3.8 Minor update available for module commerce (3.3.8). Search API HTML Element Filter 1.0.7 Minor update available for module search_api_html_element_filter (1.0.7). Layout Builder Reorder 2.0.1 Minor update available for module layout_builder_reorder (2.0.1). Ban 1.1.0 Minor update available for module ban (1.1.0). Field Formatter Range 2.0.0 Major update available for module field_formatter_range (2.0.0). Field Formatter Range 8.x-1.8 Minor update available for module field_formatter_range (8.x-1.8). Varbase Media Header 9.2.1 Minor update available for module varbase_media_header (9.2.1). Search API Solr 4.3.11 Module search_api_solr updated after 14 months of inactivity (4.3.11). Provus Mega Menu Module provus_mega_menu crossed 1,000 active installs.

Module Builder

353 sites Security covered
View on drupal.org

This module helps developers build new Drupal modules by automatically generating code skeletons for various components like entities, plugins, forms, and controllers. It analyzes your existing site code to provide context and can generate code based on detected patterns. It also allows you to manage and regenerate module components within the Drupal UI.

A module which auto-generates a skeleton or "scaffolding" for a module, along with hints on how to fill them in. Useful for newbie developers to learn how Drupal code works, and seasoned developers who are too lazy to look up what arguments a function has to take.

Module Builder is unlike any other code generator in that it analyses your site's code to detect plugin types, hooks, services, and so on. It can then generate code for any of these, whether from core, contrib, or your custom code.

But more than this, module builder can generate:

  • Content and config entity types
  • Plugins of just about any type, with injected services
  • Forms, with injected services
  • Routes and controllers, with injected services
  • Permissions
  • Services
  • Plugin types
  • PHPUnit test case classes, and test modules
  • An api.php file to document the module's hooks
  • An admin settings form
  • A README file
  • ... and more.

You can watch a demonstration of some of the components that can be generated.

You can read more about how to use Module Builder on the documentation site.

Module Builder saves the data for a generated module as a config entity, meaning that you can return to a generated module and add or change its components and generate code again.

Module Builder also has partial functionality for adopting and existing module as a module config entity, to then add further code to it. For example, this allows adopting an existing service class and adding an extra injected service to it.

There is also experimental code for generating a theme.

Installation

  1. Install Module Builder with Composer, as with a normal module, but with the '--dev' Composer option, so that Module Builder is not deployed to production servers. WARNING: Module Builder is a developer tool. It should NEVER be installed on a production site, as it has the capability to write to the site's codebase.
  2. Go to Administration › Configuration › Development › Module Builder › Analyse and run the code analysis.
  3. Go to Administration › Configuration › Development › Module Builder › Modules and add a new module entity.

Versions

  • Drupal 8/9/10/11: 4.x is stable and being actively developed. This provides a Drupal UI. For use with Drush commands, use the Drush command.
  • Drupal 7: 7.x-2.x-dev is stable and only receiving maintenance. 7.x-2.0 is the final version that includes the Drush commands.
  • Drupal 6: 6.x-2.x-dev is stable and no longer supported. For Drush, use 7.x-2.0 as a Drush plugin.
  • Drupal 5: 5.x-1.x-dev is stable and no longer supported.

Drupal UI

Install this module as normal, using the version appropriate for your version of Drupal. For 4.x, use Composer to install the Drupal Code Builder library and other dependencies (see the README for instructions). After installation, run the code analysis on the settings page.

Drush plugin (7.x-2.0 and earlier only)

Install the entire module folder in a place where Drush can find plugins (see Drush documentation for details). It can then be used for any Drupal site that Drush can be used with, independent of Drupal version. Use 7.x-2.0 version as a Drush plugin for version 6 or 7 of Drupal, and use Drush 8 or prior; see the documentation for more details.

Co-maintainers needed: http://drupal.org/node/278908
Invitation for roadmap ideas: http://drupal.org/node/310691

Activity

Total releases
11
First release
Mar 2025
Latest release
2 weeks ago
Releases (12 mo)
8 ▲ from 3
Maintenance
Active

Release Timeline

Releases

Version Type Release date
4.2.3 Stable Jul 2, 2026
4.2.x-dev Dev May 15, 2026
4.2.2 Stable Mar 15, 2026
4.2.1 Stable Jan 26, 2026
4.2.0 Stable Jan 26, 2026
4.1.3 Stable Sep 10, 2025
4.1.2 Stable Aug 22, 2025
4.1.1 Stable Jul 21, 2025
4.1.x-dev Dev May 15, 2025
4.1.0 Stable Apr 26, 2025
4.0.7 Stable Mar 28, 2025