В Drupal 8 получение базового URL-адреса сайта является распространенным требованием, особенно при создании пользовательских модулей или тем. Базовый URL-адрес — это корневой адрес веб-сайта, включая протокол (HTTP или HTTPS), домен и номер порта, если применимо. В этой статье мы рассмотрим различные методы получения базового URL-адреса в Drupal 8, сопровождаемые примерами кода.
Метод 1: использование глобальной переменной $base_url
Глобальная переменная $base_url содержит базовый URL-адрес сайта. Вы можете получить к нему доступ непосредственно в коде Drupal 8. Вот пример:
$base_url = \Drupal::request()->getSchemeAndHttpHost();
Метод 2: использование класса Url
Drupal 8 предоставляет класс Url, который позволяет получать различные компоненты URL-адреса, включая базовый URL-адрес. Вот пример:
use Drupal\Core\Url;
$base_url = Url::fromRoute('<front>', [], ['absolute' => true])->toString();
Метод 3: использование функции base_path()
Функция base_path() возвращает базовый URL-адрес сайта. Вот пример:
$base_url = base_path();
Метод 4: Использование конфигурации доверенных хостов
Drupal 8 позволяет вам определять шаблоны доверенных хостов в файле settings.php. Вы можете получить базовый URL-адрес, сопоставив текущий хост с этими шаблонами. Вот пример:
$trusted_host_patterns = \Drupal::config('system.site')->get('trusted_host_patterns');
$current_host = \Drupal::request()->getHost();
foreach ($trusted_host_patterns as $pattern) {
if (preg_match('/' . $pattern . '/', $current_host)) {
$base_url = \Drupal::request()->getSchemeAndHttpHost();
break;
}
}
В этой статье мы рассмотрели несколько методов получения базового URL-адреса в Drupal 8. Предпочитаете ли вы использовать глобальные переменные, класс Url, функцию base_path() или конфигурацию доверенных_хост_шаблонов, у вас есть различные варианты получения базового URL-адреса. URL-адрес в соответствии с вашими конкретными требованиями. Используя эти методы, вы можете обеспечить гибкость и точность своих проектов Drupal 8.