답변:
테마 관리자를 사용하는 것은 테마에 대한 정보를 얻는 적절한 Drupal 8 방법입니다.
\Drupal::service('theme.manager')->getActiveTheme()
drupal 8의 일반적인 규칙은 관리자 (/ handler) 서비스를 찾는 것입니다.
** 참고 : Neograph734가 지적했듯이 활성 테마 객체를\Drupal::service('theme.manager')->getActiveTheme()
반환 합니다 . 테마 machine-name을 얻으려면 다음을 사용하십시오.\Drupal::service('theme.manager')->getActiveTheme()->getName()
이것은 그것을 할 것입니다 :
$config = \Drupal::config('system.theme');
print $config->get('default');
항상 drush를 사용하여 사용 가능한 구성을 탐색 할 수 있습니다.
drush config-list
과
drush config-list system
나에게 목록을 주었다 :
...
system.rss
system.site
system.theme.global
system.theme
...
그런 다음 다음을 확인할 수 있습니다.
drush cget system.theme.global
과
drush cget system.theme
마침내 default
당신이 요구 했던 재산을 소유하고 있음을 알게되었습니다.
getActiveTheme()
함수는 정확히 같은 결과를 반환합니다 : $this->configFactory->get('system.theme')->get('default')
getName()
. 테마명을 얻으려면\Drupal::service('theme.manager')->getActiveTheme()->getName();