Skip to main content

Insight | Dec 18, 2015

Build a Simple Module with Drupal Console

By Curtis Ogle

I recently stumbled upon this thing call Drupal Console — and I must say that I’m impressed. Although I have not completely integrated it into my workflow, Drupal Console has a lot of features that will help make Drupal 8 development virtually painless. It also comes with useful documentation so you can hit the ground running.

So, first things first, what is it? Drupal Console is a command line tool that can interact with a Drupal 8 installation — similar to the way Drush works with Drupal 7. However, Drupal Console takes it a few steps further as it can also generate boilerplate code and also comes packaged with tool to help you convert Drupal 7 modules to work with Drupal 8.

Let’s make the Hello World module, but instead of preparing a module skeleton, we will use Drupal Console to do all of the grunt work for us! First we run `drupal generate:module` in our terminal. From there, a wizard will take over and ask you for the rest of the details.

That’s it!

Now you have a module skeleton sitting in `modules/custom/hello_world`.

To finish off the module all we have to do is add the routing file and the basic controller and we are all set.

 

<?php
/**
* @file
* Contains \Drupal\hello_world\Controller\HelloController.
*/
 
namespace Drupal\hello_world\Controller;
 
use Drupal\Core\Controller\ControllerBase;
 
class HelloController extends ControllerBase {
  public function content() {
    return array(
      '#type' => 'markup',
      '#markup' => $this->t(‘Drupal Console is cool!),
    );
  }
}
?>

 

hello_world.content:
  path: '/hello'
  defaults:
    _controller: '\Drupal\hello_world\Controller\HelloController::content'
    _title: 'Hello World'
  requirements:
    _permission: 'access content'

 

Now that our module is ready to go, let's turn it on by running `drupal module:install hello_world`.

This demonstration didn’t even scratch the surface of what Drupal Console can do. I didn’t even tell you that it works with Drush! (Yes, really. I could have used `drupal drush en hello_world` to enable the module too). So download Drupal Console, it will make things easier.

Drop us a line

Have a project in mind?

Contacting Third and Grove may cause awesomeness. Side effects include a website too good to ignore. Proceed at your own risk.

Get a fresh perspective on your digital future. The best of TAG, straight to your inbox.

Subscribe to newsletter

By signing up for emails from Third and Grove, you agree to our Privacy Policy. We handle your info with care. Unsubscribe anytime.

Copyright © 2026 Third and Grove

Reduced motion disabled