Drupal is a registered trademark of Dries Buytaert
drupal 11.3.7 Update released for Drupal core (11.3.7)! drupal 11.2.11 Update released for Drupal core (11.2.11)! drupal 10.6.7 Update released for Drupal core (10.6.7)! drupal 10.5.9 Update released for Drupal core (10.5.9)! cms 2.1.1 Update released for Drupal core (2.1.1)! drupal 11.3.6 Update released for Drupal core (11.3.6)! drupal 10.6.6 Update released for Drupal core (10.6.6)! cms 2.1.0 Update released for Drupal core (2.1.0)! bootstrap 8.x-3.40 Minor update available for theme bootstrap (8.x-3.40). menu_link_attributes 8.x-1.7 Minor update available for module menu_link_attributes (8.x-1.7). eca 3.1.1 Minor update available for module eca (3.1.1). layout_paragraphs 2.1.3 Minor update available for module layout_paragraphs (2.1.3). ai 1.3.3 Minor update available for module ai (1.3.3). ai 1.2.14 Minor update available for module ai (1.2.14). node_revision_delete 2.0.3 Minor update available for module node_revision_delete (2.0.3). moderated_content_bulk_publish 2.0.52 Minor update available for module moderated_content_bulk_publish (2.0.52). klaro 3.0.10 Minor update available for module klaro (3.0.10). klaro 3.0.9 Minor update available for module klaro (3.0.9). layout_paragraphs 2.1.2 Minor update available for module layout_paragraphs (2.1.2). geofield_map 11.1.8 Minor update available for module geofield_map (11.1.8).

service

21 sites Security covered
View on drupal.org

πŸ‡ΊπŸ‡¦

This module is maintained by Ukrainian developers.
Please consider supporting Ukraine in a fight for their freedom and safety of Europe.

The module provides traits and extended base classes to make dependency injections easier.

Post-Installation

Example of using this module in a block class:

namespace Drupal\hello_world\Plugin\Block;

use Drupal\Core\Block\Attribute\Block;
use Drupal\Core\StringTranslation\TranslatableMarkup;
use Drupal\service\BlockBase;
use Drupal\service\ConfigFactoryTrait;
use Drupal\service\EntityTypeManagerTrait;
use Drupal\service\UserDataTrait;

/**
 * Provides a 'Hello World' block.
 */
#[Block(
  id: "hello_world_block",
  admin_label: new TranslatableMarkup("Hello World"),
)]
class HelloWorldBlock extends BlockBase {

  use ConfigFactoryTrait;
  use EntityTypeManagerTrait;
  use UserDataTrait;

  /**
   * {@inheritdoc}
   */
  protected function creation(): static {
    return $this
      ->addConfigFactory()
      ->addEntityTypeManager()
      ->addUserData();
  }

  /**
   * {@inheritdoc}
   */
  public function build(): array {
    $ids = ($storage = $this->entityTypeManager()->getStorage('user'))
      ->getQuery()
      ->accessCheck()
      ->condition('uid', 0, '>')
      ->sort('created', 'DESC')
      ->range(0, $this->configFactory()->get('hello_world')->get('limit') ?? 10)
      ->execute();

    if ($ids) {
      $phrase = $this->t('hello, world!');
    }

    return [
      '#theme' => 'item_list',
      '#title' => $this->t('Greetings to all users!'),
      '#items' => array_map(
        fn(int $id): TranslatableMarkup => $this->t('@username says: @phrase', [
          '@username' => $storage->load($id)->getDisplayName(),
          '@phrase' => $this->userData()->get('hello_world', $id, 'phrase') ?? $phrase,
        ]),
        $ids,
      ),
    ];
  }

}

Additional Requirements

  • PHP 8.3 or higher (for version 3.0.0)
  • PHP 8.2 or higher (for version from 1.0.0 to 1.0.3 and 2.0.0 or newer)
  • PHP 5.5 or higher (for version 1.0.4 or newer)

Activity

Total releases
3
First release
Jun 2025
Latest release
10 months ago
Release cadence
0 days
Stability
100% stable

Release Timeline

Releases

Version Type Release date
3.0.1 Stable Jun 18, 2025
2.1.1 Stable Jun 18, 2025
1.1.1 Stable Jun 18, 2025