Last updated September 30, 2014. Created on February 27, 2011.
Edited by pbulebar, jmcejuela, chemical, drupalshrek. Log in to edit this page.

This tutorial describes how to create a module for Drupal 7. If your goal is to convert a module from Drupal 6 or earlier to Drupal 7, see: Updating your modules.

A module is a collection of functions that link into Drupal, providing additional functionality for your Drupal installation. After reading this tutorial, you will be able to create a basic block module and use it as a template for more advanced modules.


This tutorial assumes you have:

  • Basic PHP knowledge, including syntax and the concept of PHP objects
  • Basic understanding of database tables, fields, records and SQL statements
  • A working Drupal 7 installation
  • Drupal administration access
  • Webserver access

This tutorial does not assume you have any knowledge about the inner workings of a Drupal module.

For more information on module development, see Module Development with Drupal.

When finished

This tutorial will not necessarily prepare you to write modules for public release. It does not cover important topics such as: caching, permissions, or security issues. Use this tutorial as a starting point and then extend your skills with other resources, including:

When you are finished developing a useful module, you may want to contribute it back to the community. If so follow the instructions for: creating a new full project.

Looking for support? Visit the forums, or join #drupal-support in IRC.