📜  drupal 8 获取服务 (1)

📅  最后修改于: 2023-12-03 15:14:48.252000             🧑  作者: Mango

Drupal 8 获取服务

在Drupal 8中,开发人员可以通过依赖注入来获取服务。依赖注入是Drupal 8中一个重要的概念,允许开发人员获取到资源而不必使用全局函数。

定义服务

在Drupal 8中,服务是通过声明性的方式来定义的。以下是一个定义服务的示例:

services:
  my_service:
    class: Drupal\my_module\MyService
    arguments: ['@entity_type.manager']

在这个例子中,我们定义了名为my_service的服务,它的类是Drupal\my_module\MyService。服务有一个参数,用于注入entity_type.manager服务。

获取服务

获取Drupal 8中的服务很容易。以下是一个获取服务的示例:

$myService = \Drupal::service('my_service');

在这个例子中,我们使用了静态Drupal类来获取my_service服务。我们还可以使用依赖注入来自动注入服务,如下所示:

public function myFunction(MyService $myService) {
  // 现在$myService已经准备好使用了。
}

在这个例子中,我们使用了依赖注入将服务注入到函数中。在函数中,我们可以直接使用$myService变量,而无需调用服务获取器。

总结

在Drupal 8中,开发人员可以通过yaml文件定义服务,然后使用静态Drupal类或使用依赖注入来获取服务。这个新的服务架构使得代码维护更加简单,同时也提高了可测试性。