Skip to main content
drupalreleases

Use direct release data with your AI assistant.

Learn more

Dex

Security covered No further development 6 sites

This module provides a console for Drupal extensions, allowing developers to create and register custom commands without modifying Drupal core. It serves as a demonstration for integrating a command-line interface into Drupal.

Console for Drupal EXtensions.

An intentionally short-lived project designed to demo the Dex proposal at #3453474: CLI entry point in Drupal Core.

Includes the necessary components to develop and register commands without needing to use a core patch.

How to use

  1. Require and enable the module.
  2. Create a new file in a module with directory/namespace: src/Command/ / Drupal\MYMODULE\Command.
  3. Add code to file:
    1. Create a class extending Symfony\Component\Console\Command\Command
    2. Add the class attribute Symfony\Component\Console\Attribute\AsCommand
  4. Clear cache
  5. Execute your new command with dex MYMODULE:command
declare(strict_types=1);

namespace Drupal\MYMODULE\Command;

use Drupal\Component\Datetime\TimeInterface;
use Symfony\Component\Console\Attribute\AsCommand;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Style\SymfonyStyle;

#[AsCommand(name: 'MYMODULE:command', description: 'An example command.')]
final class MyCommand extends Command {

  public function __construct(
    private readonly TimeInterface $dateTime,
  ) {
    parent::__construct();
  }

  protected function execute(InputInterface $input, OutputInterface $output): int {
    $io = new SymfonyStyle($input, $output);

    $now = new \DateTimeImmutable('@' . $this->dateTime->getRequestTime());
    $io->note('The current time is ' . $now->format('r'));

    return static::SUCCESS;
  }

}

Drupal 10–11

Ask your assistant about Dex

Check compatibility with your Drupal and PHP version, maintenance and security coverage, from current release data. How it works

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

1 tracked project depends on this one

Activity

Tracked releases
6
Tracked since
May 2024
Latest release
1 year ago
Releases (12 mo)
0 ▼ from 1
Maintenance
Dormant

Release Timeline

Releases

Version Type Core PHP Release date
1.1.0 Stable 10–11 Dec 16, 2024
1.0.3 Stable 10–11 PHP 8.2 Aug 24, 2024
1.0.2 Stable 10–11 PHP 8.1 Aug 24, 2024
1.0.1 Stable 10–11 PHP 8.2 Jul 4, 2024
1.0.0 Stable 10–11 PHP 8.2 May 26, 2024
1.x-dev Dev 10–11 PHP 8.2 May 26, 2024