Tip: Create a Console Helper

Published by Christian Münch on

Since version 1.77.0 we provide an easy registration of console helpers.
Console Helpers are way to share functionality with other commands.

I will show you how easy it is to create such a helper.
Out example helper will return the current system time.

Create a new module

Create a new folder in your home directory with the name “.n98-magerun/modules/example-module”.

mkdir -p ~/.n98-magerun/modules/example-module

Now we need a module config file.

cd ~/.n98-magerun/modules/example-module

Create a file “n98-magerun.yaml” with the following content inside the module folder.
The config defines a new namespace “Example” in the autoloader of n98-magerun, the new helper “datetime”
and an example command “ExampleCommand”.
We will create the new files in this tutorial.

  Example: %module%/src

  datetime: Example\DateTimeHelper

    - Example\ExampleCommand

Create the helper

Create a new folder src/Example inside the module folder.

mkdir -p src/Example

Inside the src folder we will place our helper with the filename “DateTimeHelper.php”.


namespace Example;

use Symfony\Component\Console\Helper\Helper as AbstractHelper;

class DateTimeHelper extends AbstractHelper
    * Returns the canonical name of this helper.
    * @return string The canonical name
    * @api
    public function getName()
        return 'datetime';

    * Returns the current time
    * @return string
    public function getCurrentTime()
        return date('H:i:s');

Create an example command to test new helper

Now we create a command in file ExampleCommand.php with this content:


namespace Example;

use N98\Magento\Command\AbstractMagentoCommand;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;

class ExampleCommand extends AbstractMagentoCommand
    protected function configure()
        ->setDescription('Example command')

    * @param \Symfony\Component\Console\Input\InputInterface $input
    * @param \Symfony\Component\Console\Output\OutputInterface $output
    * @return int|void
    protected function execute(InputInterface $input, OutputInterface $output)
        $time = $this->getHelper('datetime')->getCurrentTime();

If you have created all the files you should have this file structure:

└── modules
    └── example-module
        ├── n98-magerun.yaml
        └── src
            └── Example
                ├── DateTimeHelper.php
                └── ExampleCommand.php

You should now be able to run the new command with this command line call:

n98-magerun.phar example

The command should show the current system time.
I hope you like the console helper.
n98-magerun is already bundles with some build-in helpers which are described in our
wiki. https://github.com/netz98/n98-magerun/wiki/Helpers

Happy Coding!

Download Example Module: example-module.tar.gz


Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.