Ответы:
Использование менеджера тем - это правильный способ получения информации о вашей теме в 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')
administration theme
используйте:
$activeThemeName = \Drupal::service('theme.manager')->getActiveTheme();
theme used in front
не
admistartion theme
использовалась:
$defaultThemeName = \Drupal::config('system.theme')->get('default');
getName()
. Таким образом, чтобы получить название темы, можно было бы использовать\Drupal::service('theme.manager')->getActiveTheme()->getName();