Понимание Drupal 8 и пространств имен

Я новичок в пространствах имен, и я тренируюсь с Drupal 8. Я создал настраиваемый модуль и установил вкладку, devel.

Внутри моего модуля я определил блок, вот мой код:

пространство имен Drupal \ twitter_pull \ Plugin \ Block;
используйте Drupal \ block \ BlockBase;

/**
 * Предоставляет блок для выполнения PHP-кода.
 *
 * @Block (
 * id = "twitter_pull_tweets_block",
 * admin_label = @Translation ("Twitter Tweets")
 *)
 * /
класс TweetsBlock расширяет BlockBase {

  /**
   * Создает и возвращает рендерируемый массив для этого блочного плагина.
   *
   * @return array
   * Рендерируемый массив, представляющий содержимое блока.
   *
   * @see \ Drupal \ block \ BlockViewBuilder
   * /
  public function build () {
    пм (массив ( 'это', 'имеет значение', 'а', 'тест'));
    return 'это блок';
  }
}

, и он отлично работает. Но я не понимаю, почему у меня есть доступ к функциям devel? Где в моем коде я включаю пространство имен для devel, которое должно иметь доступ к dpm ()?

8
7 голосов | спросил user1015214 29 J000000Tuesday14 2014, 00:45:32

1 ответ


7

Прямо от PHP глобального пространства docs:

  

Без определения пространства имен все определения классов и функций помещаются в глобальное пространство - как это было в PHP до того, как были поддерживаются пространства имен. Префикс имени с \ укажет, что имя требуется из глобального пространства даже в контексте пространства имен.

Devel's dpm() объявлен в «Глобальном пространстве», и поскольку нет другого dpm(), объявленной в вашем пространстве имен, используется «глобальный» (нет необходимости в предыдущем \).

ответил Clive 29 J000000Tuesday14 2014, 01:16:19

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132