I always follow Symfony standards when it comes to helper functions. I normally have one module for developer-central stuff where I add a class under `src/Utils` for that and then call it everywhere I need it. Also in `*.module` or `*.theme` files. **web/modules/custom/my_system/src/Utils/MyHelperFunctions.php** namespace Drupal\my_system\Utils; /** * Class MyHelperFunctions. */ class MyHelperFunctions { /** * Get current multi-site directory name. * * @return string * The basename of the matching multi-site directory. */ public static function getMultiSiteAlias() { $site_path = \Drupal::service('site.path'); $site = explode('/', $site_path); return $site[1]; } } **web/modules/themes/custom/my_theme/my_theme.theme:** use Drupal\my_system\Utils\MyHelperFunctions; /** * Implements template_preprocess_html(). */ function my_theme_preprocess_html(&$variables) { // Add multi-site body class. $site = MyHelperFunctions::getMultiSiteAlias(); $variables['attributes']['class'][] = 'site-' . $site; }