美文网首页Drupal
Drupal 9 理解服务

Drupal 9 理解服务

作者: 又起风了_ | 来源:发表于2022-03-31 17:50 被阅读0次

从D8开始,Drupal就引入了服务的概念,在Drupal中服务可以是任何对象,通过服务容器进行管理。
引入服务是为了解耦和增强可重用性,通过将服务注册到服务容器中,从而实现即插即用。
作为开发人员,最好通过服务容器访问 Drupal 提供的所有服务,以确保系统的解耦特性。

以下是一些常用的内核服务:

使用uuid服务,生成UUID

$uuid = \Drupal::service('uuid')->generate();

使用path.current服务,获取当前路径

$current_path = \Drupal::service('path.current')->getPath();

使用path.alias_manager服务,获取路由的别名

$alias = \Drupal::service('path.alias_manager')->getAliasByPath($current_path);

使用account_switcher服务,切换用户session

  $accountSwitcher = \Drupal::service('account_switcher');
  $account = \Drupal\user\Entity\User::load(USER_ID);
  $accountSwitcher->switchTo($account);

获取所有可用服务

$services = \Drupal::getContainer()->getServiceIds();
dump($services);

相关文章

  • Drupal 9 理解服务

    从D8开始,Drupal就引入了服务的概念,在Drupal中服务可以是任何对象,通过服务容器进行管理。引入服务是为...

  • Drupal 9 小版本更新

    以下内容只涉及Drupal9小版本的更新,如需大版本的升级(如Drupal7或8升级到Drupal9),请参考官方...

  • Drupal 手册 -think in drupal

    Drupal 手册 drupal主题化介绍drupal OG首页主题化drupal主题化概述对一个Drupal主题...

  • 什么是Drupal?为什么选择Drupal

    ​Drupal开发,Drupal建站,Drupal二次开发?为什么是Drupal?尤其是Drupal企业建站呢?D...

  • Drupal8 关于Service

    在Drupal8中,services是由服务容器(services container)管理的,提供的一组服务(比...

  • 初学员对drupal开发入门

    国内首套系统全面的Drupal职业课程,由资深Drupal工程师为您提供全面Drupal基础开发、Drupal模块...

  • drupal 7/8在页面中添加 css/js文件

    drupal7: 加载 css文件 drupal_add_css(drupal_get_path('modul...

  • 第一部分 Drupal简介

    回首页 第一部分 Drupal简介 Drupal overview A tour of Drupal fundam...

  • Drupal 9 批处理

    有时程序在处理大量数据时,运行的时间比较长,这样很容易发生超时现象。这时候就可以使用批处理来解决这个问题。 1.定...

  • Drupal 9 Devel Kint

    在Drupal9中,Devel模块中已经集成了Kint,但是想要启用Kint,还需要单独安装Kint。只需执行以下...

网友评论

    本文标题:Drupal 9 理解服务

    本文链接:https://www.haomeiwen.com/subject/vmunjrtx.html