Drupal 8: Как написать пользовательские функции php и вызвать функцию с пользовательской страницы? - PullRequest
0 голосов
/ 07 апреля 2020

Я новичок в веб-разработке Drupal. Я уже использовал платформу Wordpress, создав собственный плагин для написания пользовательских функций php, и вызвать функцию с пользовательской страницы было легко.

пример:

<?php
function givenumber(){
  return 50;
}
?>;

Который я вызываю, используя:

<?php  echo givenumber(); ?>
  • Как мне добиться аналогичного с Drupal 8?
  • Нужно ли создавать собственный модуль для написания пользовательских функций php?
  • Как вызвать функцию с пользовательской страницы?

Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 17 апреля 2020

Существует N способов. И это зависит от вашего варианта использования.

Если вы хотите какое-то пользовательское значение и просто показать на своей странице контента. Существуют функции hook_preprocess_node (), которые вы можете написать в своей активной теме и сделать некоторые переменные доступными для вашего файла ветки.

0 голосов
/ 09 апреля 2020

Лучший способ сделать это в Drupal 8 - создать службу в пользовательском модуле yes.

Создать модуль со следующей структурой:

your_custom_module/
├── your_custom_module.info.yml
├── your_custom_module.services.yml
└── src/
    └── YourCustomService.php

Ваш your_custom_module.services.yml file:

services:
  your.custom.service:
    class: Drupal\your_custom_module\YourCustomService

Ваш класс обслуживания:

<?php

namespace Drupal\your_custom_module;

class YourCustomService {

  public function giveNumber() {
    return 1234;
  }

}

Включите модуль, и теперь вы можете вызывать эту услугу:

\Drupal::service('your.custom.service')->giveNumber();

Подробнее см. в Структура сервисного файла

...