Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: OpenID Connect / OAuth client 3.0.0-alpha9 New alpha version released for module openid_connect (3.0.0-alpha9). Usage Milestone: Google Analytics Module google_analytics crossed 1,000 active installs. Release: Timelinr 1.0.1 Minor update available for module timelinr (1.0.1). Release: GraphQL Compose Codegen 1.1.2 Minor update available for module graphql_compose_codegen (1.1.2). Release: Mapy.com 1.1.3 Minor update available for module mapycom (1.1.3). Release: Ckeditor5 entity browser 3.0.3 Minor update available for module ckeditor5_entity_browser (3.0.3). Release: Ckeditor5 entity browser 3.0.1 Minor update available for module ckeditor5_entity_browser (3.0.1). Release: Ckeditor5 entity browser 3.0.2 Minor update available for module ckeditor5_entity_browser (3.0.2). Release: Teamleader Integration 4.0.2 Minor update available for module teamleader (4.0.2). Module Revived: Entityqueue Buttons 1.1.2 Module entityqueue_buttons updated after 8 months of inactivity (1.1.2).

Service

20 sites Security covered Drupal 8–11
View on drupal.org

This module provides convenient traits and base classes to simplify dependency injection in Drupal, making it easier to manage and inject services into your custom code. It offers pre-built solutions that streamline common injection patterns.

πŸ‡ΊπŸ‡¦

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)

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

6 tracked projects depend on this one

Activity

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

Release Timeline

Releases

Version Type Core Release date
3.0.1 Stable 8–11 Jun 18, 2025
2.1.1 Stable 8–11 Jun 18, 2025
1.1.1 Stable 8–11 Jun 18, 2025
3.0.0 Stable 8–11 Dec 20, 2024
2.1.0 Stable 8–11 Dec 20, 2024
1.1.0 Stable 8–11 Dec 20, 2024
1.1.x-dev Dev 8–11 Nov 18, 2024
3.0.x-dev Dev 8–11 Nov 11, 2024
2.1.x-dev Dev 8–11 Sep 30, 2024
2.0.1 Stable 8–11 Sep 30, 2024
1.0.5 Stable 8–11 Sep 30, 2024