Дополнительные типы блоков (EBT) — новый опыт конструктора страниц❗

Дополнительные типы блоков (EBT) — стилизованные, настраиваемые типы блоков: слайдшоу, вкладки, карточки, аккордеоны и многие другие. Встроенные настройки для фона, DOM Box, плагины Javascript.

Демо EBT модули Скачать EBT модули

❗Дополнительные типы параграфов (EPT) — новый опыт работы с параграфами

Дополнительные типы параграфов (EPT) — набор модулей, основанный на аналогичных параграфах.

Демо EPT модули Скачать EPT модули

Scroll
08/05/2020, by maria

Запросы можно извлекать в объекты на основе пользовательских классов. Например, если у нас есть класс с именем ExampleClass, следующий запрос вернет объекты типа exampleClass.

$result = $connection->query("SELECT id, title FROM {example_table}", [], [
  'fetch' => 'ExampleClass',
]);

Если в классе есть метод __construct(), объекты будут созданы, свойства будут добавлены к объекту, а затем будет вызван метод __construct(). Например, если у вас есть следующий класс и запрос.

class ExampleClass {
  function __construct() {
    // Do something
  }
}

$result = $connection->query("SELECT id, title FROM {example_table}", [], [
  'fetch' => 'ExampleClass',
]);

Объект будет создан, свойства id и title будут добавлены к объекту, а затем будет выполнена __construct(). Порядок этих событий связан с ошибкой в PHP для версий менее 5.2.

Если на объекте существует метод __construct(), который необходимо выполнить до добавления свойств к объекту, в следующем примере показано, как это сделать.

$result = $connection->query("SELECT id, title FROM {example_table}");
foreach ($result->fetchAll(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE, 'ExampleClass') as $record) {
  // Do something
}

Аргументы, передаваемые в fetchAll, могут быть использованы таким же образом. PDO::FETCH_CLASS говорит fetchAll взять возвращенный набор результатов и добавить значения в качестве свойств к объекту типа ExampleClass (второй аргумент). PDO::FETCH_PROPS_LATE говорит fetchAll добавить результирующий набор в качестве свойств к объекту после вызова __construct().

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.