回答:
テーママネージャーを使用することは、テーマに関する情報を取得する適切なDrupal 8の方法です。
\Drupal::service('theme.manager')->getActiveTheme()
drupal 8の一般的なルールは、マネージャー(/ handler)サービスを探すことです。
**注:Neograph734が指摘したように、\Drupal::service('theme.manager')->getActiveTheme()
はアクティブなテーマオブジェクトを返します。テーマのマシン名を取得したい場合は、\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();