Drupal is a registered trademark of Dries Buytaert

service

18 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
8 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